std::map<Keystruct,Valuestruct>, wie implementiere ich den operator<?

schuti

Grünschnabel
struct ValueStruct {
alles ok hier;
ValueStruct& operator+=( const ValueStruct& p) {}
};

struct KeyStruct{
std::string ersterString;
std::string zweiterString;

bool operator< ( const KeyStruct& p)
{
if ( ersterString != p.ersterString )
return ersterString < p.ersterString ;
return zweiterString < p.zweiterString;
}

};

std::map<KeyStruct, ValueStruct> dieMap;
KeyStruct key;
ValueStruct value;
dieMap[key]+=value;

Das klappt irgendwie nicht. Problem scheint der operator< zu sein. Kann mir jemand helfen?
 
Hi.

Bitte verwende in Zukunft die entsprechenden Code Tags [code=cpp]...[/code] wenn du Code postest.

Und die Fehlermeldung des Compilers ist in der Regel äußerst nützlich da sie (auch dir!) einen Hinweis gibt was genau falsch ist.

C++:
bool operator< (const KeyStruct& p) const {
  ...
}
Gruß
 

Neue Beiträge

Zurück