Как отсортировать объект std :: vector по значению с плавающей точкой - PullRequest
5 голосов
/ 21 мая 2009

У меня есть C ++ std :: vector, обозначенный как:

std::vector<GameObject*> vectorToSort;

Каждый объект в vectorToSort содержит параметр с плавающей точкой, который возвращается вызовом «DistanceFromCamera ()»:

vectorToSort.at(position)->DistanceFromCamera();

Я хочу отсортировать вектор по этому параметру с плавающей точкой, однако std :: sort не может это сделать. Как я могу достичь такого рода?

1 Ответ

18 голосов
/ 21 мая 2009

вы хотите использовать предикат, подобный этому:

struct VectorSortP {
    bool operator()(const GameObject *a, const GameObject *b) const {
        return a->DistanceFromCamera() < b->DistanceFromCamera();
    }
};

std::sort(vectorToSort.begin(), vectorToSort.end(), VectorSortP());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...