C++标准模板库(STL)之sort函数

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排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值