C++ shrink_to_fit()的實現
有一種方法來把它從曾經最大的容量減少到它現在需要的容量。這樣減少容量的方法常常被稱為“收縮到合適(shrink_to_fit)”。該方法只需一條語句:
vector<int>(ivec).swap(ivec);
表示式vector<int>(ivec)建立一個臨時vector,它是ivec的一份拷貝:vector的拷貝建構函式做了這個工作。但是,vector的拷貝建構函式只分配拷貝的元素需要的記憶體,所以這個臨時vector沒有多餘的容量。然後我們讓臨時vector和ivec交換資料,這時我們完成了,ivec只有臨時變數的修整過的容量,而這個臨時變數則持有了曾經在ivec中的沒用到的過剩容量。在這裡(這個語句結尾),臨時vector被銷燬,因此釋放了以前ivec使用的記憶體,收縮到合適。
參考:C++ primer P318;
相關文章
- vector::shrink_to_fit()
- vector shrink_to_fit
- STL vector中的shrink_to_fit方法(32)
- LinkBlockedQueue的c++實現BloCC++
- [C++]實現memcpyC++memcpy
- C++ binder 實現C++
- C++ 實現Golang裡的deferC++Golang
- FastASR——PaddleSpeech的C++實現ASTC++
- 邱奇數的C++實現C++
- DES密碼的C++實現密碼C++
- 原型模式的C++實現原型模式C++
- C++“隱藏實現,開放介面”的實現方案C++
- 用c++實現淨現值的計算C++
- 命令模式(c++實現)模式C++
- 堆排序(實現c++)排序C++
- 堆排序c++實現排序C++
- HTTPS通訊的C++實現HTTPC++
- LRU Cache 的簡單 C++ 實現C++
- C++ 多型的實現及原理C++多型
- Callback在C\C++中的實現C++
- C++的Stack模板的簡單實現C++
- binder 一個簡單的c++服務的實現,與callback實現C++
- 享元模式(c++實現)模式C++
- 中介者模式(c++實現)模式C++
- 橋接模式(c++實現)橋接模式C++
- 模板方法模式(c++實現)模式C++
- 狀態模式(c++實現)模式C++
- 字典樹及其C++實現C++
- 折半查詢(C++實現)C++
- C++程式設計實現C++程式設計
- hanoi漢諾塔C++實現C++
- C++實現蛇形矩陣C++矩陣
- C++實現單例模式C++單例模式
- C++實現工廠模式C++模式
- 單例模式c++實現單例模式C++
- C++ 實現簡略計算π的程式C++
- 快速排序的三種實現方法 (C++)排序C++
- C++ 初始化函式的實現C++函式