Tôi có một vectơ của con trỏ lớp std::vector<Square*> listSquares
. Tôi muốn sắp xếp nó với một trong các thuộc tính của lớp làm khóa. Đây là những gì tôi đang làmstd :: sort() trên vectơ của con trỏ Class
bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}
std::sort(listSquares.begin(), listSquares.end(), compById)
nhưng trình biên dịch nói: lỗi: không có chức năng phù hợp cho cuộc gọi đến 'sắp xếp (std :: vector :: iterator, std :: vector :: iterator, < chưa được giải quyết quá tải loại chức năng >) '
Tôi đang làm gì sai ở đây?
Nếu bạn có thể sử dụng C++ 11, bạn nên thực hiện điều này một lambda: 'std :: sort (listSquares.begin(), listSquares.end(), [] (Square * a, Quảng trường * b) {return a-> getId() < b-> getId;}) '. – leftaroundabout
Hãy chắc chắn rằng bạn thực sự muốn con trỏ và không chỉ là đối tượng, quá. – chris
Tôi không thể sử dụng C++ 11. @chris Tôi chắc chắn tôi muốn sử dụng con trỏ. – qutab