Я хочу использовать функцию nth_element
со своей собственной функцией сортировки (которая должна иметь доступ к данным объекта) внутри класса. В настоящее время я делаю следующее:
class Foo
{
public:
glm::vec3 *points;
int nmbPoints;
bool idxPointCompareX(int a, int b);
void bar();
}
bool Foo::idxPointCompareX(int a, int b)
{return points[a].x < points[b].x;)
void Foo::bar()
{
stl::vector<int> idxPointList;
for(int i = 0; i < nmbPoints; i++) idxPointList.push_back(i);
stl::nth_element(idxPointList.first(),idxPointList.first()+nmbPoints/2,idxPointList.end(), idxPointCompareX);
}
Конечно, это не сработало, и я получил ошибку: «Должна быть вызвана ссылка на нестатическую функцию-член». После этого я просмотрел ссылку на нестатический член должна быть вызвана функция, Как инициализировать std::function
с членом -function? и некоторые другие вопросы здесь. Я понимаю, почему это не сработало, но я не уверен, как это решить.
Может ли кто-нибудь помочь мне и сказать мне, как решить эту проблему?