当前位置 : 主页 > 编程语言 > c语言 >

priority queue 优先队列

来源:互联网 收集:自由互联 发布时间:2023-08-25
priority queue 优先队列 1、特性 每个元素都有一个优先级,元素按优先级的顺序从队列中删除,如果优先级相同,则遵循先进先出规则。 插入和删除都比一般的队列慢 ,因为必须对元素

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 交换内容
上一篇:C++基础-STL queue
下一篇:没有了
网友评论