首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++:带有自定义值的反向排序对

C++:带有自定义值的反向排序对
EN

Stack Overflow用户
提问于 2015-07-29 19:01:31
回答 2查看 520关注 0票数 0

在谷歌上搜索了一段时间之后,我找不到具体的答案。如何反向排序带有自定义类型的c++ STL对

代码语言:javascript
运行
复制
pair <long long, pair< int, int > > p[MAX];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-29 19:01:31

代码语言:javascript
运行
复制
#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)
}

自定义函数可以自定义自定义类型。对于类的ex,我们可以使用class_obj.variable_name等。

  • 来源于我的博客注解
票数 4
EN

Stack Overflow用户

发布于 2015-07-29 19:14:34

std::pair自己提供了一个成员级的operator < (以及operator >),所以您需要做的就是让std::sort使用operator >

代码语言:javascript
运行
复制
std::sort(p, p + MAX, std::greater<pair <long long, pair< int, int > >>());

这里有更多的文档:std:成对std:分类std::更大

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31708988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档