优先队列
优先队列可以对队列中数据元素排序
#include<queue>//头文件
priority_queue<int>q;//默认为从大到小进行排序
priority_queue<int,vector<int>,less<int> >q;//从大到小排序
priority_queue<int,vector<int>,greater<int> >q;//从小到大排序
其中vector<>不需要#include
优先队列使用方法与队列相似,常用的函数
优先队列返回队首元素
q.top();
队列为
p.front();
优先队列中元素为结构体
在结构体外重载结构体运算符
struct node{
int start,end;
};
bool operator<(const node &a,const node &b)
{
if(a.start<b.start||a.start==b.start&&a.end<b.end)
return 0;
return 1;
}
在结构体内重载结构体运算符
struct node{
int start,end;
bool operator < (const node& t)const{
if(start<t.start||start==t.start&&end<t.end)
return 0;
return 1;
}
};
默认为从小到大输出,从大到小输出返回1
参考GooZy博客