5

可能重复:
std::list<>::sort 稳定吗?

是否保证 C++ std::list 排序函数保留列表中相等元素的顺序?例如,如果我们在列表中有对象 A、B 和 C,并且比较运算符被重载,使得 A == C 和 B < A,我们一定会得到 BAC 还是有可能得到 BCA?

4

2 回答 2

12

是的,在 C++list::sort()中是稳定的,根据 ISO 14882:2003 23.2.2.4[lib.list.ops]/31

Effects: Sorts the list according to the operator< or a Compare function object.
Notes: Stable: the relative order of the equivalent elements is preserved. 
If an exception is thrown the order of the elements in the list is indeterminate.
于 2011-03-03T20:04:04.740 回答
6

是的,标准要求 list::sort 是稳定的。

于 2011-03-03T20:02:23.993 回答