C++;STL 为什么两个C++ STL向量的内容独立于对应向量大小的时间复杂度?

C++;STL 为什么两个C++ STL向量的内容独立于对应向量大小的时间复杂度?,c++,c++11,vector,stl,C++,C++11,Vector,Stl,参考资料:典型的矢量实现存储: 分配器 指向第一个元素的指针 指向超过结束位置的指针,或等效的大小 指向向量所拥有的内存块末尾的指针,或与容量相等的指针 swap()只需交换指针,如果allocator\u traits::propagate\u on\u container\u swap::value为true,则分配器。它不进行元素交换。事实上,除了std::array之外,任何标准容器都不允许进行元素交换。因为它们交换指向底层数据的指针。。。(和计数/容量变量)

参考资料:

典型的矢量实现存储:

  • 分配器
  • 指向第一个元素的指针
  • 指向超过结束位置的指针,或等效的大小
  • 指向向量所拥有的内存块末尾的指针,或与容量相等的指针

swap()
只需交换指针,如果
allocator\u traits::propagate\u on\u container\u swap::value
为true,则分配器。它不进行元素交换。事实上,除了
std::array
之外,任何标准容器都不允许进行元素交换。

因为它们交换指向底层数据的指针。。。(和计数/容量变量)