Vektor nach Membervariable der Klasse sortieren
-
Hallo,
ich will einen Vektor, der aus Elementen einer eigenen Klasse besteht, nach Membervariablen dieser Klasse sortieren.
Die Klasse sieht wie folgt aus:class Klausur { private: string teilnehmer; int punkte[4]; ... }Der Vektor:
vector<Klausur> klausuren(3);Der String teilnehmer soll das Sortierkriterium sein.
Einfachsort(klausuren.begin(),klausuren.end());
klappt nicht.
Wie bekomme ich den Vektor jetzt sortiert?
Danke für die Hilfe
-
Deine klasse braucht einen operator <
z.b.#include <vector> #include <algorithm> #include <string> using namespace std; class Klausur { public: Klausur() {} Klausur( const char * t ):teilnehmer(t) {} bool operator < (const Klausur & rhs ) const { return teilnehmer < rhs.teilnehmer; } private: string teilnehmer; }; int main() { std::vector<Klausur> klausuren; klausuren.push_back(Klausur("sepp")); klausuren.push_back(Klausur("karl")); klausuren.push_back(Klausur("josef")); sort(klausuren.begin(), klausuren.end() ); }Kurt
-
Hat geklappt
Vielen Dank
-
Alternativ kannst auch einen 3. Parameter an sort() mit einer Compare funktion übergeben.