与普通的队列不同,在优先队列中,元素有优先级,访问元素时,具有最高级优先级的元素先被访问。
与堆类似,加入新的数会自动维护顺序
优先队列的时间复杂度为O(log n),n为队列中元素的个数
常用方法:
top( ) //返回优先队列的队顶元素
pop( ) //删除队首元素
push( ) //加入一个元素
size( ) //返回队列中的元素个数
empty( ) //判断队列是否为空
定义: priority_queue<Type, Container, Functional>
Type 是数据类型,Container是容器类型(Container是用数组实现的容器,如vector, list除外。一般默认值是vector),Functional 就是比较的方式,默认是大顶堆方式
头文件
#include<functional>
priority_queue<int,vector<int>,greater<int> > q; //降序
priority_queue<int,vector<int>,less<int> > q; //升序
greater<int> > 中间一定有空格分割开