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

Posted inception6-lxc

tags:

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


sort中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。 因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态成员。


以上是关于C++中得sort函数的比较函数(第三个参数)为什么要声明为static的主要内容,如果未能解决你的问题,请参考以下文章

STL中sort排序算法第三个参数_Compare的实现本质

浅析sorted函数中的key

Vector容器 二维数组sort()排序

(C++) sort() 中第三个参数的决策结构

C++中有专门给对象数组排序的类方法吗,就像Java中的sort

为啥用于 stl 函数的 lambda 函数,如 C++ 中的 sort() 、 max_element() 函数需要两个参数作为输入?