对pair优先队列如何使小值先出队列 即按pair第一个元素排序 小的先出

typedefpair<int,int>pii;priority_queue<pii>Q;STL这东西用的还不是很熟悉求帮助。。。... typedef pair<int,int> pii;
priority_queue<pii> Q;
STL这东西用的还不是很熟悉 求帮助。。。
展开
 我来答
zreolei
推荐于2016-03-20 · TA获得超过453个赞
知道答主
回答量:123
采纳率:100%
帮助的人:28.3万
展开全部
typedef pairpii;
priority_queue<pii, vector, yourcomparison> Q;

//yourcomparison @@@@I'm not sure if it's reference here, you can try it yourself
bool yourcomparison(const pii& p1, const pii& p2) {
return p1.first < p2.first;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
axh70
2015-07-21 · TA获得超过4.1万个赞
知道大有可为答主
回答量:2.2万
采纳率:68%
帮助的人:2177万
展开全部
typedef pair<int, int>pii;
priority_queue<pii, vector<pii>, yourcomparison> Q;

//yourcomparison @@@@I'm not sure if it's reference here, you can try it yourself
bool yourcomparison(const pii& p1, const pii& p2) {
return p1.first < p2.first;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Starfire9
推荐于2016-03-14 · TA获得超过282个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:0
展开全部
typedef pair<int, int>pii;
priority_queue<pii, vector<pii>, yourcomparison> Q;

//yourcomparison @@@@I'm not sure if it's reference here, you can try it yourself
bool yourcomparison(const pii& p1, const pii& p2) {
return p1.first < p2.first;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e254f91
2018-07-25
知道答主
回答量:13
采纳率:0%
帮助的人:5.2万
展开全部

默认的是先把 pair 的第一位作为第一关键字, pair 的第二位作为第二关键字

例如:

typedef pair <long long, int> point;
priority_queue <point, vector<point>, greater<point> > q;

中,通过 typedef 将 point 转化为一种类似于自定义类型的形式,优先队列先考虑 point 的 first 位

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式