クラス内で定義されている場合、カスタム比較関数でstd :: sort関数を使用する際に問題があります。私は次のエラーメッセージを取得std :: sort関数のカスタム比較関数の結果エラー:非静的メンバー関数への参照を呼び出す必要があります
class Test {
private:
vector< vector<int> > mat;
bool compare(vector<int>, vector<int>);
public:
void sortMatrix();
}
bool Field::compare(vector<int> a, vector<int> b) {
return (a.back() < b.back());
}
void Test::sortMatrix() {
sort(vec.begin(), vec.end(), compare);
}
:私はしかし、(比較)とsortMatrix(定義すると、任意のクラスなしのファイルmain.cppにして)
error: reference to non-static member function must be called
sort(vec.begin(), vec.end(), compare);
^~~~~~~
を、すべてが正常に動作します。私は何か助けと提案を感謝します。
メンバー関数を 'Test'クラス呼び出しオペレータに変更することはできません。代わりに' sort() 'に' Test'を渡すことはできません: 'sort(vec.begin()、vec.end()、Test ); ' –