C ++:反向排序对,里面有自定义值

时间:2015-07-29 19:01:31

标签: c++ stl

在谷歌搜索了一段时间之后,我无法找到专门回答这个问题的答案。如何反转排序c ++ STL对中的一些自定义类型

pair <long long, pair< int, int > > p[MAX];

2 个答案:

答案 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::pairstd::sortstd::greater