我有一个链接列表,我想对其进行排序,例如:
std::sort(someIterator, otherIterator, predicate);
std :: sort需要随机访问迭代器,因此这种方法不起作用。有一个专门化的std :: list :: sort,但它只能对整个列表进行排序。我认为我没有足够的权限让列表成员自己写一些东西。
有没有办法在不更改为矢量的情况下执行此操作?
答案 0 :(得分:12)
如何将要排序的列表部分取消挂钩到独立列表中, 然后使用专门的列表排序,然后将其挂回到原始列表中?
答案 1 :(得分:2)
是的,但您必须使用merge sort。