STL笔记总结-priority_queue

priority_queue又称为优先队列。
1.priority_queue的定义
要使用优先队列,应先添加头文件#include<queue>.
priority_queue<typename>name;
2.priority_queue容器内元素的访问
优先队列没有front()函数,back()函数,只能通过top()函数来访问队首元素(也可以称为堆顶元素),
也就是优先级最高的元素。
3.priority_queue常用函数实例解析
(1)push()
push(x)将令x入队。
(2)top()
top()可以获得队首元素。
(3)pop()
pop()令队首元素出列。
(4)empty()检测优先队列是否为空,返回true则空,返回false则非空。
(5)size()
size()返回优先队列内元素的个数。
4.priority_queue内元素优先级的设置
(1)基本数据类型的优先级设置
下列两种优先队列的定义是等价的(注意最后两个>之间有一个空格)
priority_queue<int>q;
priority_queue<int,vector<int>,greater<int>>q;
可以发现,第二种定义方式的尖括号内多出了两个参数:一个是vector<int>,另一个是less<int>.其中
vector<int>填写的是来承载底层数据结构堆(heap)的容器,如果第一个参数是double型或char型,
则此处只需要填写vector<double>或vector<char>;而第三个参数less<int>则是对第一个参数的比较类,
less<int>表示数字大的优先级越大,而greater<int>表示数字小的优先级越大。
如果想让优先队列总把最小的元素放在队首,只需进行如下定义:
priority_queue<int,vector<int>,greater<int>>q;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是蒸的c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值