仅当条件适用时才排序 - std::sort
Sorting only if condition applies - std::sort
>假设我必须按积分对足球联赛表进行排序,如果两支球队之间的积分相等,则按净胜球对它们进行排序。
使用带有函子的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);
}
相关文章:
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- std::sort()函数无法对向量的一部分进行排序
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 使用 std::sort 对向量进行稳定排序
- std::排序在共享指针的向量上
- 如何根据排序索引的向量对 std::index 集进行排序?
- 如何按键对 std::对列表进行排序?
- 使用 std::vector C++快速排序,EXC_BAD_ACCESS代码 2
- 为什么我的函数接受"std::string"进行排序不会改变它?
- 如何在 c++11 中静态断言 std::array 类成员进行排序?
- 使用 std::sort 对二维 c 数组进行排序
- std::tuple 可以根据其值在编译时/运行时排序吗?
- 如何排序 std::p空气优先
- 仅当条件适用时才排序 - std::sort
- 排序 std::set 使用 operator() 对插入进行排序
- C++ - 排序 std::vector 中元素的索引
- 合并排序 std:string 中的字符
- 部分排序 std::list