栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++排序相关/比较器/严格弱排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++排序相关/比较器/严格弱排序

介绍

在C++中可以使用STL库中的实现完成排序和搜索,我们只需要定义比较器就可以支持任意类型的任务。

api

std::stable_sort: 元素相等时保持原有顺序,内部实现是归并排序。
std::sort:元素相等时不保证原有顺序,内部实现为快排。

比较器

C++中定义的比较器必须满足严格的弱排序,否则会出现未定义行为。比如在具有循环的石头剪子布游戏中,STL无法对其进行正确地排序。

在比较器函数comp(a, b)中,a先序于b则返回true,否则返回false。

严格弱排序

在严格弱排序中,只要定义了<,那么既可以得到>和==。
即:

  • a > b <=> b < a
  • a == b <=> !(a < b) && !(b < a)
    此时,如果使用<=这样的非严格偏序的比较符,当a==b的情况下会返回true,大多数算法会失效。
reference

Compare
What is strict weak ordering in C++ sort?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号