c++ - 如何按第一个元素降序对<int,对<int,int>>对数组进行排序?

标签 c++ arrays sorting std-pair

我想对包含 pair <int, pair <int, int> > 的数组进行排序, 按第一个值降序排列。

我有

pair <int, pair<int, int> > adj[10];

其中有值,未排序。

当我用

sort(adj, adj + 10);

它会根据 adj[i].first 对数组进行排序值,按升序排列。

但是,当我尝试按降序排序时

sort(adj, adj + 10, greater<int>());

它不允许我。

还有其他降序排列的方法吗?

最佳答案

你可以这样写:

std::sort(std::begin(adj), std::end(adj), 
          std::greater<std::pair<int, std::pair<int, int>>>{});

,您可以将其简化为:

std::sort(std::begin(adj), std::end(adj), std::greater<>{});

,你可以简单一点:

std::sort(std::begin(adj), std::end(adj), std::greater{});

,你可以进一步简化这个:

std::ranges::sort(adj, std::greater{});

关于c++ - 如何按第一个元素降序对<int,对<int,int>>对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63584383/

相关文章:

java - 引用持久性并传递可变数量的数组

javascript - 数组中相同的值必须放在一起

c++ - 使用带有指针参数的函数从字符数组中删除空格

sql-server - 按父组和子组对父子记录排序

c++ - 将指针与引用进行比较

c++ - 数据结构 vector 的内存管理

c++ - 为什么没有替换预处理器指令?

c++ - 静态线程函数访问 C++ 中的非静态类成员

c - Cormen 的 HeapSort 算法在 C 中的实现

javascript - 降低矩阵排序的运行时复杂性