std :: list :: sort和指向元素的指针

时间:2013-02-24 14:16:44

标签: c++ list sorting pointers reference

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

2 个答案:

答案 0 :(得分:5)

来自“Working 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()

答案 1 :(得分:2)

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