C 中 vector容器 模板類陣列

2021-07-15 03:03:24 字數 785 閱讀 9133

對vector容器的一點理解,相對於陣列,vector容器可以不固定大小,但是需要而外的記憶體

空間,這是用空間來換取陣列動態大小的一種方式 

1.定義

vector a;   定義了乙個空的int型陣列

vectorb(n); 定義了乙個長度為n的double型陣列

vectorb(c);  定義乙個c的副本

vectord(n,i); 定義並初始化d,為n個i元素

2.基本的操作

一. 插入操作

尾部插入   a.push_back(i);  把元素i插入a的尾部

指定位置插入 a.insert(p,i)   在迭代器p前插入元素i

二.刪除操作

a.erase(p);  刪除迭代器p所指向的元素

a.pop_back(); 彈出最後乙個元素,並不會返回

三.遍歷

通過下標(和陣列一樣)

通過迭代器遍歷

#include#includeusing namespace std;

int main()

{   int i;

vectora;

for(i=0;i<5;i++)

a.push_back(2*i+1);

for(i=0;i<5;i++) //利用下標遍歷 

cout<::iterator it; //定義了乙個迭代器

for(it=a.begin();it!=a.end();it++)  //利用迭代器遍歷 

cout<<*it<<" ";

cout<

C 容器類Vector 動態陣列

3.vector 示例 大多數程式語言都提供內建的動態陣列,它仍然是乙個隨機訪問的列表資料結構,但大小是可變的。例如,在 c 中的 vector。向量 vector 是乙個封裝了動態大小陣列的順序容器 sequence container 容器類 跟任意其它型別容器一樣,它能夠存放各種型別的物件。可...

c 模板 類(vector容器的粗糙實現)

平時stl用起來十分的方便,但卻一直沒有深入了解過其中的實現原理,所以今天就粗略的用自己有限的知識實現vector容器的部分功能。首先vector容器的原理並不複雜 動態申請記憶體和釋放記憶體。之前一直想著動態申請記憶體要使用realloc 當空間不足就追加適當的空間,但是具體自己做的時候發現,如果...

C 簡單Vector模板類

用template 來實現n維向量的相關性質。寫的時候其中有幾個關鍵的地方 1.模板類的函式定義必須和標頭檔案放在乙個cpp檔案裡,系統不支援模板類的單獨編譯。2.定義模板類的成員 友元 函式時,都要加 template or template 3.對於模板類的友元函式,都宣告成了非約束 unbou...