Искам да използвам функцията 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
с член -функция? и някои други въпроси тук. Разбирам защо това не проработи, но не съм сигурен как да разреша това.
Може ли някой да ми помогне и да ми каже как да реша този проблем?