2
为什么交换两个C++ STL矢量的内容所需的时间复杂度与相应矢量的大小无关?用于C++的矢量的恒定时间交换逻辑STL
参考:http://www.cplusplus.com/reference/vector/vector/swap/
为什么交换两个C++ STL矢量的内容所需的时间复杂度与相应矢量的大小无关?用于C++的矢量的恒定时间交换逻辑STL
参考:http://www.cplusplus.com/reference/vector/vector/swap/
典型的矢量执行存储:
swap()
只需交换指针,并且如果allocator_traits<allocator_type>::propagate_on_container_swap::value
为真,则为分配器。它不会做元素智能交换。实际上,除了std::array
以外,没有标准容器被允许进行元素智能交换。
因为它们将指针交换到基础数据...(以及计数/容量变量) – Borgleader 2014-10-06 15:01:10