關(guān)于stable_sort()和sort()的區(qū)別:
你發(fā)現(xiàn)有sort和stable_sort,還有 partition 和stable_partition, 感到奇怪吧。其中的區(qū)別是,帶有stable的函數(shù)可保證相等元素的原本相對次序在排序后保持不變?;蛟S你會問,既然相等,你還管他相對位置呢,也分不清 楚誰是誰了?這里需要弄清楚一個問題,這里的相等,是指你提供的函數(shù)表示兩個元素相等,并不一定是一摸一樣的元素。
例如,如果你寫一個比較函數(shù):
boolless_len(conststring &str1,conststring &str2)
{
return str1.length() < str2.length();
}
此時,"apple" 和 "winter" 就是相等的,如果在"apple" 出現(xiàn)在"winter"前面,用帶stable的函數(shù)排序后,他們的次序一定不變,如果你使用的是不帶"stable"的函數(shù)排序,那么排序完 后,"Winter"有可能在"apple"的前面。
舉例說明:
[cpp]view plaincopy

結(jié)果:
