仅当条件适用时才排序 - std::sort

Sorting only if condition applies - std::sort

本文关键字:排序 std sort 条件      更新时间:2023-10-16

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

使用带有函子的std::sort,我成功地按点对表进行了排序。 但是我现在如何对只有相似积分的球队进行排序?

换句话说,我需要以某种方式使用排序,并使其仅对具有相似点数的团队进行排序。有什么舒适的方法可以做到这一点吗?

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

重载运算符<

bool operator < (const team& A, const team& B) //team is a struct of points and goals
{
    if (A.points != B.points) return (A.points < B.points);
    else return (A.goals < B.goals);
}