首页 > 代码库 > stable_sort() 和 sort() 的区别
stable_sort() 和 sort() 的区别
1.stable_sort 和 sort的区别在于 前者作排序可以使原来的"相同"的值在序列中的相对位置不变
如 1 4 6 7 4‘ (4 和 4‘值相等,加上‘ 表示是2个元素)
那么stable_sort能保证排序完 4 仍然在4‘ 前 也就是输出1 4 4‘ 6 7;但是sort 没有这个功能,算法不能保证这一点
2.在标准算法<algorithm>中的一部分算法 如果这个算法默认使用的是 < 运算符,那么这类算法通常提供一个重载版本,这个重载版本包括3个参数,而不是2个.新增的第三个参数是一个函数指针,这个函数指针指向的函数 就是用来代替默认的 < 运算符的.
也就是说如果容器中的2个元素 ,元素a和元素b,输入个这个新增的比较函数之后,函数返回true,那么a将会放在b前面,LZ给的例子里面这个比较函数能够用使长度大的排在前面.
同时,使用了stable_sort能够保证2个长度相同的元素按原顺序排列.
如 1 4 6 7 4‘ (4 和 4‘值相等,加上‘ 表示是2个元素)
那么stable_sort能保证排序完 4 仍然在4‘ 前 也就是输出1 4 4‘ 6 7;但是sort 没有这个功能,算法不能保证这一点
2.在标准算法<algorithm>中的一部分算法 如果这个算法默认使用的是 < 运算符,那么这类算法通常提供一个重载版本,这个重载版本包括3个参数,而不是2个.新增的第三个参数是一个函数指针,这个函数指针指向的函数 就是用来代替默认的 < 运算符的.
也就是说如果容器中的2个元素 ,元素a和元素b,输入个这个新增的比较函数之后,函数返回true,那么a将会放在b前面,LZ给的例子里面这个比较函数能够用使长度大的排在前面.
同时,使用了stable_sort能够保证2个长度相同的元素按原顺序排列.
stable_sort() 和 sort() 的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。