priority queue 优先队列
1、特性
每个元素都有一个优先级,元素按优先级的顺序从队列中删除,如果优先级相同,则遵循先进先出规则。插入和删除都比一般的队列慢,因为必须对元素重新调整顺序,以支持按优先级排序。
2、适用情况
需要一个带优先级的先进先出结构
3、头文件
#include<queue>
4、复杂度
插入:push(),O(logN) 删除:pop(),O(logN) 查找(取堆顶):top(),O(1)
5、定义及常用函数
优先队列有三个参数,其声明形式为:
priority_queue< type, container, function >
这三个参数,后面两个可以省略,第一个不可以。
其中:
type:数据类型;
container:实现优先队列的底层容器,必须是数组形式实现的容器,例如vector、deque,而不能使list;
function:元素之间的比较方式;
top 访问队头元素
empty 队列是否为空
size 返回队列内元素个数
push 插入元素到队尾 (并排序)
emplace 原地构造一个元素并插入队列
pop 弹出队头元素
swap 交换内容
标签:queue,优先级,队列,元素,priority,插入
From: https://blog.51cto.com/u_16200991/7191983