数据结构-排序小结【sort和priority_queue】

sort函数排序

sort(it.begin().it.end(),cmp);

三个参数:begin,end,排序方式
排序区间:前闭后开;
排序方式:默认从小到大:

sort(it.begin().it.end(),less<type>());

从大到小应改为:

sort(it.begin().it.end(),greater<type>());

缺点:不能对结构体和自定义数据结构排序,需要另写排序函数。
自定义排序函数:

sort(it.begin().it.end(),cmp);//cmp是函数名,返回类型应是bool类型

自定义排序结构体:

sort(it.begin().it.end(),Cmp());//cmp是结构体名

priority_queue优先队列排序

priority_queue<type,容器<type>,cmp()>;

三个参数:数据类型,容器类型(默认vector),排序方式;
排序方式默认大顶堆:

priority_queue<type,容器<type>,less<type> >;

小顶堆应改为:

priority_queue<type,容器<type>,greater<type> >;

区别

sort默认的less是升序;而优先队列默认的less是降序
这是因为,优先队列的top()获取的是队列尾部元素,pop()也是弹出的队列尾部元素,所以导致,从优先队列读取元素时,和sort的排序形式相反。

参考文章

sort函数、priority_queue中比较函数的写法
STL之sort、priority_queue 排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值