對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...