List sort wird trotz operator nicht soertiert
-
Hallo zusammen,
ich versuche eine liste zu sortieren doch die Liste wird nicht sortiert. Ich habe im operator eine Ausgabe der Werte gemacht und die Werte werden als 0 ausgegeben. Ich verstehe das nicht. Hier mal das Beispielcode:
class Data{ int age; string name; }; typedef std::list<Data> Customers; bool operator<(Data &x, Data &y){ cout << x.age << " " << y.age << endl; // wird immer 0 0 ausgegeben return x.age < y.age; } class CustomerMGNT{ Customers customers; public: void add(Data customer){ this->customers.push_back(customer); } void printsorted(){ list<Data>::iterator it; this->customers.sort(); for (it=this->customers.begin();it != this->customers.end(); ++it){ cout << (*it).name << " "; cout << (*it).age << endl; } } }; int main(){ CustomerMGNT cu; Data a,b.c; a.age = 53; a.name = "Test01"; b.age = 23; b.name = "Test02"; c.age = 33; c.name = "Test03"; cu.add(a); cu.add(b); cu.add(c); cu.printsorted(); return 1; }output:
0 0
0 0
0 0
Test01 53
Test02 23
Test03 33Ich verstehe das nicht. Warum bekommt der operator 0 als age?? Kann mir jemand weirwe helfen???
Danke + Gruss,
Haksi
-
Dieser Code kompiliert nicht. Wenn man ihn soweit korrigiert, dass er kompiliert, ist dein beschriebener Fehler nicht reproduzierbar.
Welchen Compiler benutzt du?