我有一个向量的对,我想分类。我想按第一个元素按升序排序,如果第一个元素相等,我想按第二个元素的降序排序。
示例:
3 2
1 9
0 4
3 3排序时,它必须是:
0 4
1 9
3 3
3 2我是否可以在c++中实现这一点?
发布于 2022-02-12 13:02:18
就像评论中的人说的那样,std::sort应该可以很好地处理一些lambda。我猜是这样的:
std::vector<std::pair<int, int>> vec{
{3, 2},
{1, 9},
{0, 4},
{3, 3}
};
std::sort(vec.begin(), vec.end(), [](const auto& l, const auto& r){
return (l.first == r.first) ? l.second > r.second : l.first < r.first;
});https://stackoverflow.com/questions/71092006
复制相似问题