优先队列
和队列
和的不同的就在于我们可以自定义其中数据的优先级
, 让优先级高的排在队列前面,优先出队。
头文件
#include <queue>
定义:
priority_queue<Type, Container, Functional>
- Type 为数据类型
- Container 为容器类型
- 比如
vector
,deque
,pair
等,默认是vector
- 比如
- Functional 为比较的方式,默认为大顶堆
greater\<int>
小顶堆less\<int>
大顶堆
常用操作:
empty() //返回bool型,表示queue是否为空,为空返回true ( q.empty() )
size() //返回queue内元素个数 ( q.size() )
back() // 返回queue内的最后一个元素( q.back() )
pop() // 出队,移除queue中的第一个元素(q.pop(); )
push(data_type a) //入队, 将一个元素a插入queue中(在队尾插入)(q.push(a))
top() //返回队首元素