std::sort für vector of object
-
Hallo Leute,
ich möchte mit der Sortierfunktion Flugzeuge nach Priorität sortieren. Ich möchte dies über std::sort realisieren, aber der Compiler akzeptiert die Struktur als 3.Parameter nicht. Wo liegt der Fehler?
struct airplane_sort { bool operator()(airplane& a1,airplane& a2) const { return a1.getpriority() < a2.getpriority(); } }; void sort(vector<airplane>& liste) { std::sort(liste.begin(),liste.end(),airplane_sort); } //Fehler: 'Airport::airplane_sort': Ungültige Verwendung dieses Typs als AusdruckVielen Dank schon mal im Voraus für hilfreiche Antworten.
-
Du musst natürlich auch erst ein Objekt davon erzeugen. Also:
std::sort(liste.begin(),liste.end(),airplane_sort);->
std::sort(liste.begin(),liste.end(),airplane_sort());
-
Vielen Dank!
Hatte vorher beide Möglichkeiten ausprobiert und keines von beiden hat funktioniert. Hab aber gerade entdeckt, dass ich in einem unvorsichtigen Moment meinen Konstruktor halb gelöscht habe -.-Vielen Dank nochmal für die schnelle Antwort. Es funktioniert jetzt

-
Dein Vergleichsobjekt braucht keinen Konstruktor. Bist du wieder einer von der Jürgen-Wolf-Schule des leeren Konstruktors? Warum den Vergleich überhaupt als Objekt, wenn er doch keinen Zustand hat? Da wäre doch eine Funktion angebracht.