Hallo C++ - Spezialisten,
ich beschäftige mich zur Zeit mit der STL, aber zu einigen Sachen finde ich keine Erklärungen:
-
Angenommen ich habe eine Klasse „testclass“, die einfach ein int i speichern und zurückgeben kann. Außerdem ist der "testclass::operatorget_i();
}Und weiter angenommen, ich habe einen Vektor von testclass*:vector s;
Gibt es dann eine Möglichkeit, diesen Vektor mittels sort() zu sortieren?
sort(s.begin(), s.end());
funktioniert ja nicht, da s.begin() im Prinzip nur einen Zeiger zurückgibt, der nochmals dereferenziert werden müsste. Funktioniert das in diesem Fall tatsächlich nur mit einer zusätzlichen Vergleichsfunktion?
sort(s.begin(), s.end(), testclass::cmp);
Das würde ja den Sinn der Operatorüberladung zunichte machen…
- Kann ich sort() auch auf Listen anwenden? Mein Compiler liefert mir nur Fehler zurück, und ich vermute deshalb, weil es für Listen keine Iteratoren mit wahlfreiem Zugriff gibt. Ist diese Annahme korrekt?
Gruß
Chondron