首页 > 代码库 > 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个长度相同的元素按原顺序排列.

stable_sort() 和 sort() 的区别