转载自:https://www.cnblogs.com/flightless/p/10745318.html
class Solution {
public:
static bool cmp(int a, int b){
return a>b;
}
int main(vector<int>& vec) {
sort(vec.begin(), vec.end(), cmp);
for(int i=0; i<vec.size(); i++){
cout<<vec[i]<<" "<<;
}
return 0;
}
};
输出为:
vec按照降序排列。
这个代码,如果cmp函数前不加static,则会报错。因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态。所以要加上static关键字。