std::list::排序和指向元素的指针

std::list::sort and pointers to elements

本文关键字:元素 指针 list 排序 std      更新时间:2023-10-16

如果我在列表上调用sort((方法,那么指向std::列表元素的指针是否仍然有效?这个(标准(有保证吗?它似乎可以在Visual Studio 2012下运行。

摘自"C++工作草案,2012-11-02">

23.3.5.5列表操作[list.ops]
void sort();
template <class Compare> void sort(Compare comp);
28要求:operator<(对于第一个版本(或comp(对于第二个版本(应定义严格的弱订购(25.4(。
29效果:根据operator<Compare函数对象对列表进行排序。不影响迭代器和引用的有效性
30备注:稳定
31复杂性:大约N个log(N(比较,其中N == size()

排序不会移动内存中列表的元素,只会更改下一个和上一个链接指针。应该没事。