【C/C++筆記】之vector的clear和swap清除元素的區別以及用shrink_to_fit()優化空間

一、vector的clear()操作只是清空vector的元素,而vector申請到的內存空間不會被釋放掉

vector<int> vec1{ 1,2,3,4,5 };   
vec1.clear();  
cout<<"cap  "<<vec1.capacity();

這時cap=5;

二、使用vector的swap操作:

vector<int>().swap(vec1);

刪除元素並且釋放內存。推薦這種方式。

三、vector採取的是每次申請空間,就將內存變爲原來的兩倍,浪費了很多內存,這時我們可以使用shrink_to_fit使得申請的空間剛好等於vector的實際size()。

 

寫在後面:

請移步我的另一篇文章:vector清除元素和空間的三種方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章