C语言中,有很多东西需要读者自己去实现,如果不好实现的话还会容易出错。为了简化这些,C++为使用者提供了标准模板库(Standard Template Library,STL),其中封装了很多相当实用的容器。(容器可以暂时理解为能实现很多功能的东西。)
今天来看一下STL中的sort函数:
基本介绍:
sort函数是用来排序的函数,它可以根据情形使用不同的排序方法,效率较高。sort函数在实现时规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。
1、sort的使用
sort函数的使用必须加上头文件“#include”和“using namespace std”,使用方式如下:
sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填))
sort函数默认是按照给出的区间进行递增操作。
2、sort函数的第三个参数:比较函数
sort的第三个参数是 compare 函数(一般写作 cmp 函数),用这个函数可以实现 sort 函数按照对应规则进行排序。
因为 sort 函数默认是按照递增进行排序的,如果想要实现递减排序就要写一个比较函数。
3、比较函数的实现
bool cmp(int a,int b){
rerturn a>b;
}
把 cmp函数作为sort的第三个参数就可以实现递减排序。
在这里,有一些规则需要记忆:
如果数据从小到大排序,那么就用 a < b,因为 a < b 就是左小右大,而递增排序就是左小右大。同理:如果数据从大到小排序,那么就用 a > b,因为 a > b 就是左大右小,而递减排序就是左大右小。
根据比较函数,我们还可以对结构体数组排序,vector、string、dequeue排序。