STL之vector那點事

2021-08-06 05:43:51 字數 1130 閱讀 4789

1.resize和reserve的區別和聯絡

相同點:兩者都只會讓vector的capacity不減小,引數為newsize時,當newsize小於capacity時,呼叫後二者的capacity都不變

不同點:當newsize小於capacity時,呼叫後resize析構多餘的元素並且改變size的大小個空間,並沒有釋放空間,只是沒有 ;而reverse不會改變size

也不會析構元素

2.resize  reserve在增容時 的反應  

//resize  reserve在增容時 的反應

3.vector每次增容多少

//每一次增容都增加1/2

4.如何強制釋放空間

void testdelete()

{ vectorv;

v.push_back(1);

v.push_back(1);

v.push_back(1);

v.push_back(1);

v.push_back(1);

//強制釋放v的空間

STL 之vector向量容器

vector向量容器 作為陣列的乙個泛化推廣的vector容器,不僅可以陣列一樣的元素隨機訪問,還可以在容器的尾端插入新元素 vector是乙個簡單,高效的容器,在尾端插入和刪除元素,演算法時間複雜度為o 1 常數階,其他元素的插入和刪除為o n 的線性階,其中n為容器的元素個數,vector具有自...

STL之vector用法總結

vector是一種順序容器,有大小限制,但是可以動態的擴充套件,不能減小對應的空間,同陣列一樣,是線性排列的,在其尾不插入刪除效率很高,中間的插入刪除效率一般,可以向陣列一樣隨機訪問表中的元素。stl中的資料結構,都可以使用自定義的資料型別,便於擴充套件。標頭檔案 include using nam...

STL之vector的使用

本文 vector是連續記憶體容器,換句話說,標準要求所有標準庫實現的時候,vector中的元素的記憶體必須是連續的。所以對於插入和刪除的時間複雜度是很高的,因為刪除或者插入的時候,需要元素的移動,即元素複製拷貝。vector的內部實現一般需要用到placement new 所以效率很高,因為很多的...