Посоветуйте плиз как правильно написать компаратор для такой структуры, что бы использовать ее в кач-ве ключа. Преобразование к строке и сравнивание строк работает, но медленно. Никак не могу придумать более быстрый вариант.
struct UNKNOWN{
public:
char date[30];
char time[30];
in_addr ip_from;
int port_from;
in_addr ip_to;
int port_to;
friend bool operator < ( UNKNOWN a, UNKNOWN b ){
char str1[70],str2[70];
sprintf(str1,"%s%s%d%d%d%d",a.date,a.time,a.ip_from.s_addr,a.port_fr om,a.ip_to.s_addr,a.port_to);
sprintf(str2,"%s%s%d%d%d%d",b.date,b.time,b.ip_from.s_addr,b.port_fr om,b.ip_to.s_addr,b.port_to);
return strcmp(str1,str2)<0;
};
struct UNKNOWN_TRAFFIC{
public:
unsigned int bytes;
unsigned int packets;
friend ostream& operator << ( ostream &s, UNKNOWN_TRAFFIC &r ){
s<<r.packets<<" "<<r.bytes;
return s;
}
};
int func(){
UNKNOWN unknown=R;
map.map_unknown[unknown].bytes+=R.bytes;
map.map_unknown[unknown].packets+=R.packets;
}