Behold, I send you|

Rosmontis

园龄:3年6个月粉丝:6关注:3

2021-09-10 09:38阅读: 157评论: 1推荐: 0

C++优先队列基本用法 priority_queue

优先队列

参考网站资料,仅供笔记使用侵删

普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。

在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。需要使用头文件 #include

在push进元素时,会对队列进行堆排序。可以用以边输入边维护数组升降序列,当然容器中的顺序并不是升降序,只是在堆顶始终是最大小值。

定义方式: priority_queue<Type, Container, Functional>

其中容器类型必须是数组实现的容器,比如vector,dequeue,而list就不行。STL中默认是vector,优先比较方式默认是大顶堆less

1 //升序队列,小顶堆
2 priority_queue <int,vector<int>,greater<int> > q;
3 //降序队列,大顶堆
4 priority_queue <int,vector<int>,less<int> >q;

基本操作还是STL的尿性:

  • top 访问队头元素
  • empty 队列是否为空
  • size 返回队列元素个数
  • push 插入元素并排序
  • emplace 原地构造一个元素并插入队列
  • pop 弹出堆顶元素
  • swap 交换

也可以选择在push时push进-num,这时大小顶堆的功能就会交换。

本文作者:Rosmontis

本文链接:https://www.cnblogs.com/yukight/p/15250022.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Rosmontis  阅读(157)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 春弦 塞壬唱片/横山克
  2. 2 Hold Onto The Light 塞壬唱片
  3. 3 千本樱 初音未来
春弦 - 塞壬唱片/横山克
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.