C++优先队列简介
一、优先队列
与队列具有类似的特性,即只能从队尾插入元素,从队首删除元素。
此外,优先队列中的最大元素总是位于队首,所以在进行出队时,总是将当前队列中的最大元素出队
二、优先队列的使用
1、首先要添加头文件
#include<queue>
2、优先队列的声明
priority_queue<type,container,function>
其中第一个参数不可以省略,后两个参数可以省略。
type:数据类型
container:实现优先队列的底层容器,要求必须是以数组形式实现的容器
function:元素之间的比较方式
priority_queue<int> q;//定义一个优先队列,按照元素从大到小的顺序出队
//等同于
priority_queue<int,vector<int>, less<int> >q;
//另外一种按元素从小到大顺序出队
priority_queue<int,vector<int>, greater<int> >q;
3、基本操作
q.top() //访问队首元素
q.empty() //判断队列是否为空
q.push() //插入元素到队尾
q.pop() //出队队首元素
q.size() //返回队列中元素的个数
示例代码
priority_queue<int> q;
//将元素入队
q.push(1);
q.push(2);
q.push(3);
while(!q.empty()){
cout<<q.top()<<endl;//输出队首元素
q.pop();//出队
}
//从大到小依次输出3 2 1**