我想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
使用成员函数进行初始化?和其他一些问题在这里。我明白为什么这不起作用,但我不确定如何解决这个问题。
有人可以帮助我并告诉我如何解决这个问题吗?