在類中定義時,我無法使用std :: sort函數和自定義比較函數。std ::使用自定義比較函數的排序函數結果錯誤:必須調用對非靜態成員函數的引用
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);
}
我收到以下錯誤信息:
error: reference to non-static member function must be called
sort(vec.begin(), vec.end(), compare);
^~~~~~~
當我不過限定了比較()和sortMatrix()在文件main.cpp中沒有任何類,一切工作正常。我將不勝感激任何幫助和建議。
你不能在那裏使用一個成員函數,把它改爲'Test'類調用操作符,並將'Test'傳遞給'sort()':sort(vec.begin(),vec.end(),Test );' –