[leetcode]Leetcode中sort排序遇到的一些问题

 转载自: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关键字。

posted on 2019-08-27 08:47  刘好念  阅读(5)  评论(0)    收藏  举报  来源