Mam wektor wskaźników klasy std::vector<Square*> listSquares
. Chcę posortować go za pomocą jednego z atrybutów klasy jako klucza. To, co robięstd :: sort() na wektorze klasy wskaźników
bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}
std::sort(listSquares.begin(), listSquares.end(), compById)
ale kompilator mówi: błąd: nie pasującej funkcji dla wywołania do „sort (std :: vector :: iterator, std :: vector :: iterator, < nierozwiązany przeciążony funkcja typu >) "
co ja tu robię źle?
Jeśli można użyć C++ 11, należy zrobić to lambda: 'std :: sort (listSquares.begin(), listSquares.end() [] (Plac * a, Plac * b) {return a-> getId() < b-> getId;}) '. – leftaroundabout
Upewnij się, że rzeczywiście chcesz wskaźników, a nie tylko obiektów. – chris
Nie mogę używać C++ 11. @chris Jestem pewien, że chcę używać wskaźników. – qutab