如果我在列表上调用sort()方法,那么指向std::list元素的指针是否仍然有效?这个(标准)有保证吗?它似乎可以在Visual Studio 2012下工作。
发布于 2013-02-24 22:22:44
摘自"Working Draft C++,2012-11-02“
23.3.5.5 list operations list.ops
void sort();
template <class Compare> void sort(Compare comp);
28要求:operator< (用于第一个版本)或comp (用于第二个版本)应定义严格的弱排序(25.4)。
29效果:根据 Compare函数或函数对象对列表进行排序。不影响迭代器和引用的有效性。
30备注:稳定。
31复杂度:大约N个对数(N)比较,其中N == size()。
发布于 2013-02-24 22:19:16
排序不会移动内存中列表的元素,只会更改下一个和前一个链接指针。应该没问题。
https://stackoverflow.com/questions/15052586
复制相似问题