优先队列自定义排序函数
作者:互联网
1 按数值从小到大输出
priority_queue<int,vector<int>,greater<int> >q; //可理解为值越来越大
2 按数值从大到小输出
priority_queue<int,vector<int>,less<int> >q; //可理解为值越来越小
3 默认值 相当于less
priority_queue<int>q;
4.数据类型为结构体 自定义排序函数
struct node{
int id;
int dis;
bool operator > (const node &a)const{
return dis>a.dis; //代表你定义的优先级 可以随意定义
}
};
priority_queue<node,vector<node>,greater<node> >q1; //只能对应 operator > 符号
priority_queue<node,vector<node>,less<node> >q2; //只能对应 operator < 符号
例子:
bool operator > (const node &a)const{
return dis>a.dis;
}
priority_queue<node,vector<node>,greater<node> >q; //按照从小到大的顺序输出
/*----------------------------*/
bool operator < (const node &a)const{
return dis>a.dis;
}
priority_queue<node,vector<node>,less<node> >q; //按照从小到大的顺序输出
标签:queue,const,自定义,less,队列,priority,operator,排序,dis 来源: https://www.cnblogs.com/re0acm/p/16284333.html