优先队列

Posted fate-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优先队列相关的知识,希望对你有一定的参考价值。

优先队列容器和队列一样,只能从队尾插入元素,从队首删除元素。  

 为什么能叫优先队列呢??因为它有一个特性,就是队列中每个元素都有一个优先级,所以出队时,并不是完全一样的遵循先进先出的原则来进行的,而是将队列中优先级大的出队。这点有点儿类似于给队列里元素先进行一个排序,再按照顺序出队。元素的比较规则默认按照元素值由大到小排序,

1.头文件:

 1 #include<queue> 

2.声明方式

1 priority_queue<int> a; //最基本的声明方式
2 priority_queue<int,vector<int>,greater<int> > b; //通过操作,按照元素从小到大的顺序出队
3 priority_queue<int,vector<int>,less<int> >c;     //从大到小

 

另外还可以自定义排序方法,先不写

3.常用操作

  • top 访问队头元素
  • empty 队列是否为空
  • size 返回队列内元素个数
  • push 插入元素到队尾 (并排序)
  • emplace 原地构造一个元素并插入队列
  • pop 弹出队头元素
  • swap 交换内容

以上是关于优先队列的主要内容,如果未能解决你的问题,请参考以下文章

线性表--08---优先队列

优先队列

优先队列实现dijkstra算法C++代码

基础扩展 | 16. 队列应用示例:广度优先搜索

优先队列代码实现

优先队列与堆