algorithm库介绍之---- stable_sort()方法 与 sort()方法

关于stable_sort()和sort()的区别:

你发现有sort和stable_sort,还有 partition 和stable_partition, 感到奇怪吧。其中的区别是,带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。或许你会问,既然相等,你还管他相对位置呢,也分不清 楚谁是谁了?这里需要弄清楚一个问题,这里的相等,是指你提供的函数表示两个元素相等,并不一定是一摸一样的元素。

例如,如果你写一个比较函数:

boolless_len(conststring &str1,conststring &str2)

{

return str1.length() < str2.length();

}

此时,"apple" 和 "winter" 就是相等的,如果在"apple" 出现在"winter"前面,用带stable的函数排序后,他们的次序一定不变,如果你使用的是不带"stable"的函数排序,那么排序完 后,"Winter"有可能在"apple"的前面。

举例说明:

[cpp]view plaincopy

algorithm库介绍之---- stable_sort()方法 与 sort()方法_第1张图片

结果:


algorithm库介绍之---- stable_sort()方法 与 sort()方法_第2张图片

你可能感兴趣的:(algorithm库介绍之---- stable_sort()方法 与 sort()方法)