我认为问题标题足够清楚:is is possible to stable_sort() a std::list in C++?或者我必须将其转换为 std::vector 吗?
我问这个问题是因为我尝试了一个简单的示例,它似乎需要 RandomAccessIterators,而链表没有。所以,如何对 std::list() 进行稳定排序?
EDIT:给我一个错误的示例代码:
#include <list>
#include <algorithm>
// ...
list<int> the_list;
stable_sort(the_list.begin(), the_list.end());
g++ 给了我大约 30 行错误(太长而无法粘贴),其中一些涉及 RandomAccessIterators(以及名为 _merge_sort_loop 的东西)。这有点奇怪,因为我见过一些链接列表的合并排序实现,而且它们几乎是“顺序的”。
std::list::sort 已经稳定。标准第 23.2.24 节:“注释:稳定:保留等效元素的相对顺序。”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)