Vektor sortieren
-
Hallo,
ich habe einen Vektor, der eine Menge von Instanzen einer Klasse beinhaltet. Die Klasse selbst hat eine Membervariable vom Typ unsigned char*. Die chars sind alle gleich lang und repräsentieren irgendwelche Zahlen in Byte-Codierung.
class myClass { unsigned char* key; };Meine Frage: Ist es möglich, die Liste nach dem "Feld" key zu sortieren? Irgendwie müsste ich dazu doch der Klasse myClass einen Operator spendieren, der auf den keys operiert und den die sort() Methode des Vektors verwenden kann, oder?
std::vector<myClass> Liste; for ( int i = 0; i < 10; i++ ) { Liste.push_back(myClass); } sort( Liste.begin(), Liste.end() );Wäre echt Dankbar, wenn mir jemand weiterhelfen könnte.
-
Hallo,
ja das stimmt, du musst für sort den < Operator von myClass überladen,
damit sort weiß, welche Klasse wertmäßig kleiner als eine andere ist.Ein schönes ausführliches Kapitel, wie man Operatoren überlädt, findest du in dem EBook ThinkingInC++ aus der Tutorialecke.
-
Oder Du schreibst eine eigene Vergleichsklasse/-Funktion. Wie das geht ist hier http://www.mochima.com/tutorials/STL_algorithms.html beschrieben.