优先队列用法
基本用法:
q.size();//返回q里元素个数
q.empty();//返回q是否为空,空则返回1,否则返回0
q.push(k);//在q的末尾插入k
q.pop();//删掉q的第一个元素
q.top();//返回q的第一个元素
q.back();//返回q的末尾元素
优先级:
priority_queue <int,vector<int>,greater<int> > q; //越后面优先级越高
//不需要#include<vector>头文件 //greater从大到小排序,小在后面,优先级高
//注意后面两个“>”不要写在一起,“>>”是右移运算符
priority_queue <int,vector<int>,less<int> >q;
重构 <
priority_queue <node> si;
struct node
{
int x,y;
bool operator < (const node & a) const
{
return x<a.x;
}
};
基本建优先队列:
priority_queue <int> q;