gpt4 book ai didi

c++ - 如何对包含 pair 元素的 vector 进行排序?根据比较功能进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:37 25 4
gpt4 key购买 nike

typedef pair<int,int>ii;
vector<ii>vii;

sort(vii.begin(),vii.end(),comp);

ii comp(ii a,ii b){
if(a.first>b.first)
return a;
else if(a.first==b.first){
if(a.second>b.second)
return a;
else
return b;
}
else{
return b;
}
}

//这样会抛出一个编译错误。您能否指导如何根据//比较函数中给出的条件对该 vector 进行排序。

最佳答案

您可能想按字典顺序对它们进行升序排序。你可以这样做:

std::sort(vii.begin(), vii.end(), std::greater<std::pair<int,int>>());

比较仿函数是一个二元谓词,必须返回一个 bool 值,并实现strict weak ordering。 . std::greater<std::pair<int,int>>为你做。

关于c++ - 如何对包含 pair<int,int> 元素的 vector 进行排序?根据比较功能进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19795341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com