普通队列是一个先进先出的数据结构,元素在队尾添加,在队头删除。
优先队列的出队逻辑相比于普通队列发生了改变,具有最高优先级的元素先出队。
在C++中只要包含了#include<queue>就可以使用优先队列这个数据结构priority_queue;
优先队列包含了普通队列的所有操作。只是在这个基础上添加了内部的自动排序,其底层实现是一个堆。
优先队列的使用: //#include <queue>
//升序队列-最小堆
priority_queue <int,vector<int>,greater<int> > q;
//降序队列-最大堆 C++默认的是最大堆
priority_queue <int,vector<int>,less<int> >q;
相关方法:
top/pop/push/empty/size/
另外:如果用pair做优先队列的元素的话;
规则:pair的比较,先比较第一个元素,第一个相等比较第二个。
====================================================
相关链接:
C++优先队列介绍:https://www.cnblogs.com/huashanqingzhu/p/11040390.html
优先队列用法:https://blog.csdn.net/LOVETEDA/article/details/90580395