stable_sort() 和 sort() 的区别
2014-04-28 20:15
288 查看
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个长度相同的元素按原顺序排列.
相关文章推荐
- sort和stable_sort的区别和联系
- stable_sort()和sort()的区别
- stable_sort()与sort()的用法区别
- stable_sort()与sort()的用法区别
- C++中std::sort/std::stable_sort/std::partial_sort的区别及使用
- stable_sort()与sort()的用法区别
- c++中stable_sort 和sort()的区别及应用
- HIVE 中 order by, sort by, distribute by, cluster by的用法和区别
- 关于VS2008/2010中SORT,stable_sort的比较函数中strict weak ordering
- qsort和sort的详解和比较函数的区别
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析(转)
- shell中sort -u 和 uniq 去重的区别
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
- SORT_AREA_SIZE和SORT_AREA_RETAINED_SIZE的区别
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
- stable_sort
- awk 之 asort 与 asorti 数组排序区别及演示
- hive中order by、distribute by、sort by和cluster by的区别和联系
- HDOJ 1106 排序 [stable_sort]
- algorithm库介绍之---- stable_sort()方法 与 sort()方法