std::sort() auf einen Vektor der Klasse Zeiger

Ich habe einen Vektor der Klasse Zeiger std::vector<Square*> listSquares. Ich möchte sozusagen mit einem der Attribute der Klasse als Schlüssel. Dies ist, was ich Tue

bool compById(Square* a, Square* b)
{
    return a->getId() < b->getId();
}

std::sort(listSquares.begin(), listSquares.end(), compById)

aber der compiler sagt:
Fehler: keine passende Funktion für Aufruf von " Sortieren(std::vector::iterator, std::vector::iterator <unresolved overloaded function type>)'

was mache ich hier falsch?

  • Wenn Sie mit C++11 solltest du diese lambda: std::sort(listSquares.begin(), listSquares.end(), [](Square* a, Square* b){return a->getId() < b->getId;}).
  • Stellen Sie sicher, dass Sie tatsächlich wollen, dass Zeiger und nicht nur Objekte.
  • Ich kann kein C++11. @chris ich bin mir sicher, ich will Zeiger verwenden.
  • haben Sie erklärt compById innerhalb einer Klasse oder außerhalb? Es sollte draußen sein.
  • Ich habe erklärt, es innerhalb der Klasse als private-member-Funktion.
InformationsquelleAutor qutab | 2013-05-03
Schreibe einen Kommentar