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