我有一个C++ std :: vector表示为:
std::vector<GameObject*> vectorToSort;
Run Code Online (Sandbox Code Playgroud)
vectorToSort中的每个对象都包含一个float参数,该参数通过调用"DistanceFromCamera()"返回:
vectorToSort.at(position)->DistanceFromCamera();
Run Code Online (Sandbox Code Playgroud)
我希望通过这个float参数对向量进行排序,但是std :: sort似乎无法做到这一点.我怎样才能实现这种目标?
Eva*_*ran 18
你想使用这样的谓词:
struct VectorSortP {
bool operator()(const GameObject *a, const GameObject *b) const {
return a->DistanceFromCamera() < b->DistanceFromCamera();
}
};
std::sort(vectorToSort.begin(), vectorToSort.end(), VectorSortP());
Run Code Online (Sandbox Code Playgroud)