普通优先队列:
头文件:#include<queue>、#include<functional>
定义:
(默认:从大到小)priority_queue<int> que;
(自定义:从大到小)priority_queue<int,vector<int>,less<int> > que;
(最后两个'>'间要有个空格,下同)
(自定义:从小到大)prioity_queue<int,vector<int>,greater<int> > que;
操作:
增加新元素——que.push(a[i]);
删除队首元素——que.pop();
访问队首元素——que.top();
查询元素个数:que.size();
判断队列空否:que.empty();(空为真)
结构体优先队列:
头文件:#include<queue>
定义:
step 1:定义所需结构体
struct node
{
int data;
char c;
};
step 2:定义排序方式
按data的大小 从大到小排:
bool operator<(node a,node b)
{
return a.data<b.data;
}
sept 3:定义结构体优先队列
priority_queue<node> que;
操作:
增加新元素:que.push({5,'c'});
删除队首元素:que.pop();
访问队首元素:que.top().dataque.top().c;
查询元素个数:que.size();
判断队列空否:que.empty();(空为真)