【发布时间】:2014-08-22 08:17:54
【问题描述】:
对于用TR1引入STL的容器数组,我下面有个问题。
在《C++ 标准库 A Tutorial and Reference》一书的第 263 页:
但是请注意,数组 不能简单地在内部交换指针。出于这个原因,swap() 具有线性复杂性,并且迭代器和引用不会与其元素交换容器。
我想知道为什么 array 不能考虑交换指针的恒定开销?
【问题讨论】:
-
可能是因为它没有用指针实现。
-
它旨在成为 C 样式数组的零开销替代品。所以它直接保存数据。没有指向存储在其他地方的数据的指针,因此无法通过简单的指针交换来交换数据。
标签: c++ arrays c++11 complexity-theory swap