关于优先级队列(C++)

定义在头文件 :

#include <queue>

为什么叫优先级队列呢,首先它是一个队列,然后在队列的基础上增加了一个排序的功能(也就是给元素赋予优先级),是基于堆实现的:数据结构与算法:28 | 堆和堆排序

形式是这样的:

priority_queue<Type, Container, Functional>

三个参数分别代表:元素类型,容器类型和比较器

  • 元素类型:没什么好说的
  • 容器类型:默认vector,也可以是deque
  • 比较器:可调用对象,用于对元素的优先级进行比较,默认是 <

常见操作:

和队列操作类似:
	top() 访问队头元素
	empty() 队列是否为空
	size() 返回队列内元素个数
	push() 插入元素到队尾 (并自动进行堆化)
	emplace() 原地构造一个元素并插入队列
	pop() 弹出队头元素
	swap() 交换内容

常见使用方式:

priority_queue<int> q; //定义一个大顶堆
priority_queue<int, vector<int>, less<int> > q;//也是大顶堆
priority_queue<int, vector<int>, greater&l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值