STL: sort mit selbstdefinierten Datentypen
-
Hallo,
folgendes Beispiel:
//mein Datentyp struct Klasse { Klasse(int w) {this->wert= w}; //nur zum einfacheren Befuellen int wert; bool operator<(const Klasse& klasse) const { return ( this->wert < klasse.wert ); } }; //meine Liste und befuellen list<Klasse> klassen; klassen.push_back( Klasse(5) ); klassen.push_back( Klasse(17) ); klassen.push_back( Klasse(3) ); klassen.push_back( Klasse(19) ); klassen.push_back( Klasse(9) ); //Sortieren lassen sort(klassen.begin(), klassen.end());Nach meinen Quelle sollte die Sortierung nun möglich sein, da er implizit meine eigenen Datentyp "Klassen" vergleichen.
Was mache ich falsch?
Danke
-
der std::sort algorithmus benötigt randomaccess iteratoren, und kann folglich nicht mit listen verwendet werden. allerdings besitzt std::list eine memberfunktion sort (bzw. eine template memberfunktion um ein eigenes prädikat zu benutzen).
//Sortieren lassen klassen.sort();
-
Vielen Dank, das ist eine schöne und funktionierende Lösung.