1.基本介绍
- 优先队列
priority_queue
具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序
2.基本操作
s.top() //访问队头元素
s.size() //队中元素个数
s.empty() //队是否为空
s.push() //插入元素并排序
s.pop() //弹出队头元素
注意: 无s.back()
操作
//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;
3.示例
#include<bits/stdc++.h>
using namespace std;
int main()
{
priority_queue<int> q1;
priority_queue< int, vector<int>, less<int> > q2;
priority_queue< int, vector<int>, greater<int> > q3;
int a[6] = {7,3,4,2,5,1};
for(int i=0;i<6;i++){
q1.push(a[i]);
q2.push(a[i]);
q3.push(a[i]);
}
printf("priority_queue<int>:\n"); //默认降序
while(!q1.empty()){
printf("%d ",q1.top());
q1.pop();
}
printf("\n\npriority_queue< int, vector<int>, less<int> >:\n"); //降序
while(!q2.empty()){
printf("%d ",q2.top());
q2.pop();
}
printf("\n\npriority_queue< int, vector<int>, greater<int> >:\n"); //升序
while(!q3.empty()){
printf("%d ",q3.top());
q3.pop();
}
}