vector, bestehend aus struct, sortieren
-
Ein Feld zu sortieren geht ja so:
vector<int> feld; //... sort (feld.begin (), feld.begin ()+feld.size ());
Wie mach ich es aber, wenn ich sowas hier habe:
struct DATENSATZ { string text; int zahl; }; vector<DATENSATZ> feld;
Wie kann ich das zum Beispiel nach der Zahl sortieren? Und was mich noch interessieren würde: Geht es, daß er erst nach dem String und dann (wenn der String zweier Feldeinträge gleich ist) nach der Zahl sortiert?
-
Deine Struct muss den operator< überladen, da mit dem die Elemente überprüft werden. Darin implementierst du dann die Logik.
Du vergleichst beispielsweise erst die beiden Strings, und wenn sie gleich sind, vergleichst du die Zahlen.
-
Schau in die Doku zu std::sort, da werden alle deine Fragen beantwortet.
-
Danke. Das mit der Operatorüberladung war genau das, was ich benötigte.