其他分享
首页 > 其他分享> > 优先队列自定义排序函数

优先队列自定义排序函数

作者:互联网

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