Hi,
ich habe mal eine Frage zu sort in der Bibliothek <algorithm>.
sort erwartet als ersten Parameter den Anfang des Bereichs der sortiert wird und als zweiten das Ende des Bereichs.
Als dritten Parameter aber kann man eine Sortierfunktion angeben.
Die kann man z.B. einfach so implementieren:
Diese kann man dann so übergeben:
Und das funktioniert auch. Aber warum eigentlich? Warum meckert der Compiler nicht, dass dort bei compareObjects die Klammern fehlen? Und wenn sie schon fehlen dürfen, woher weiß sort dann mit was für Datentypen es umgehen muss?
ich habe mal eine Frage zu sort in der Bibliothek <algorithm>.
sort erwartet als ersten Parameter den Anfang des Bereichs der sortiert wird und als zweiten das Ende des Bereichs.
Als dritten Parameter aber kann man eine Sortierfunktion angeben.
Die kann man z.B. einfach so implementieren:
Code:
bool compareObjects(Object obj1, Object obj2)
{
return obj1.getID() < obj2.getID();
}
Code:
sort(begin, end, compareObjects );
Und das funktioniert auch. Aber warum eigentlich? Warum meckert der Compiler nicht, dass dort bei compareObjects die Klammern fehlen? Und wenn sie schon fehlen dürfen, woher weiß sort dann mit was für Datentypen es umgehen muss?