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);
}
もちろん、これは機能せず、「非静的メンバー関数への参照を呼び出す必要があります」というエラーが発生しました。その後、Reference to non-static member function must be called、How to initialize std::function
with a member-function? を見ました。ここでいくつかの他の質問。これが機能しなかった理由は理解していますが、これを解決する方法がわかりません。
誰かが私を助けて、この問題を解決する方法を教えてもらえますか?