sort中的比较函数compare

Posted ArgenBarbie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sort中的比较函数compare相关的知识,希望对你有一定的参考价值。

sort中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错: invalid use of non-static member function

因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态成员。

//自定义比较函数 
    static bool compare(string &s1, string &s2)
    {
        return s1 + s2 > s2 + s1;
    }

 

以上是关于sort中的比较函数compare的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript--数组--sort比较器

sort: invalid comparator

TreeMap和TreeSet在排序时如何比较元素,Collections工具类中的sort()方法如何比较元素

Comparable和Comparator

TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?

C++中得sort函数的比较函数(第三个参数)为什么要声明为static