順序容器vector 與 關聯容器map的總結

2021-07-12 05:55:29 字數 752 閱讀 1602

首先來區分一下概念; 容器在c++中指使用乙個型別 來存放我們需要的資料。存放的資料型別可以是基本資料型別,也可以是程式設計師自定的類。下面來了解一下順序容器vector與關聯容器map。

vector也被稱為動態陣列,存放在vector當中的資料在記憶體當中是順序排列的(和陣列的一樣),不過陣列的長度是定長的,而vector容器當存放的資料個數達到上限(capacity)時,會自動呼叫realloc函式,申請記憶體。

簡單的乙個例子,我們不用去申明vector模板類的大小

使用容器vector的增刪改查:

最有直接的方法:使用vector模板類的小標進行操作

如果定義的vector temp ;想要去遍歷這個容器,可以使用迭代器vector::iterator it;

for( it = temp.begin(); it != temp.end() ; ++it);就可以實現遍歷,

2.想要插入新元素(必須要插入的是與vector中型別相同的資料)

class a;

temp.insert(a);//前提是temp有空餘的空間

temp.push_back(a);//在vector底部插入乙個新元素a;

下面來講講關聯容器map;map

容器 順序容器 關聯容器

容器分為 順序容器 關聯容器,示意圖如下 順序容器 只儲存值,關聯容器 key value形式,關聯容器的乙個元素包含兩個部分 鍵值對 key value 有序容器 底層實現為紅黑樹,即容器內的key是有序的 無序容器 底層實現為hash table,雜湊表 區別 順序容器通過元素在容器中的位置順序...

順序容器 vector

一 底層實現 vector就是動態陣列.它也是在堆中分配記憶體,元素連續存放,有保留記憶體,如果減少大小後,記憶體也不會釋放.如果新值 當前大小時才會再分配記憶體.它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和...

順序容器vector

vector的關鍵在於其對大小的控制以及重新配置時的資料搬移效率。由於vector維護的是乙個連續線性空間,所以不論元素類別,普通指標都可以作為vector的迭代器而滿足必要條件,包括隨機訪問 操作符 等操作行為。vector提供的是random access iterators。typedef v...