在谷歌搜索了一段时间之后,我无法找到专门回答这个问题的答案。如何反转排序c ++ STL对中的一些自定义类型
pair <long long, pair< int, int > > p[MAX];
答案 0 :(得分:3)
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1e5 + 5;
typedif pair <long long, pair< int, int > > pll;
pll p[MAX];
//custom sort function can be customized
bool SortByWeight(pll x, pll y){
return x.first > y.first;
}
int main(){
//enter size
cin>>szie;
//Ex: p = [(10101, (2,3)), (129334, (4, 7))....]
sort(p, p+size, SortByWeight)
}
可以为自定义类型自定义自定义功能。对于前类,我们可以使用class_obj.variable_name等
答案 1 :(得分:0)
std::pair
自行提供成员operator <
(以及operator >
),因此您需要做的就是让std::sort
使用{{1} }}:
operator >
此处有更多文档:std::pair,std::sort,std::greater。