在类中定义时,我无法使用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 );' –