c++ - 仅在条件适用时排序 - std::sort

标签 c++ sorting std

假设我必须按积分对足球联赛表进行排序,如果两支球队的积分相等,则按入球差对它们进行排序。

std::sort 与仿函数结合使用,我成功地按点对表格进行了排序。但是我现在如何对具有相似点的团队进行排序?

换句话说,我需要以某种方式使用排序并使其仅对具有相似分数的团队进行排序。有什么方便的方法吗?

最佳答案

在你的比较函数中,首先返回true如果lhs.points < rhs.points .然后返回false如果rhs.points < lhs.points .如果你已经到了这一步,你就知道点是相等的(如果不相等,函数已经返回),所以你可以只返回 lhs.goals < rhs.goals。 .

关于c++ - 仅在条件适用时排序 - std::sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21072645/

相关文章:

c++ - 用C++获取网站源码——内容重复

algorithm - 已知统计分布数据的排序算法?

javascript - 按频率排序数组

c++ - 如何在 C++ 中创建一个连续的 bool vector ?

c++ - 是否保证在 std::string 之前初始化指向字符串文字的指针?

c++ - 尝试打开 SDL2 窗口时与 D-Bus 相关的运行时崩溃

c# - 在 C# 中按值对 NameValueCollection 进行排序

c++ - 将字符串数据附加到 std::vector<std::byte>>

c++ - 如何完全绕过 `error: no match for ‘operator==’`?

c++ - CZMQ : Getting started on Raspberry-Pi