介紹 vector(矢量; 向量),vector是C++標準模板庫(STL)中的部分內容,中文偶爾譯作“容器”,但並不准確。它是一個多功能的,能夠操作多種數據結構和演算法的模板類和函數庫。vector之所以被認為是一個容器,是因為它能夠像容器一樣存放各種類型的對象,簡單地說,vector是一個能夠存放 ...
介紹
vector(矢量; 向量),vector是C++標準模板庫(STL)中的部分內容,中文偶爾譯作“容器”,但並不准確。它是一個多功能的,能夠操作多種數據結構和演算法的模板類和函數庫。vector之所以被認為是一個容器,是因為它能夠像容器一樣存放各種類型的對象,簡單地說,vector是一個能夠存放任意類型的動態數組,能夠增加和壓縮數據。
vector 是同一種類型的對象的集合,每個對象都有一個對應的整數索引值,它的一個容器中的所有對象都必須是同一種類型的。
vector 是一個類模板。使用模板可以編寫一個類定義或函數定義,而用於多個不同的數據類型。因此,我們可以定義保存 string 對象的 vector,或保存 int 值的 vector,又或是保存自定義的類類型對象的 vector。vector 不是一種數據類型,而只是一個類模板,可用來定義任意多種數據類型。vector 類型的每一種都指定了其保存元素的類型。
用法
在C++中,vector是個常用的容器,一下是它的具體用法
vector<int> v(n,i); //建立一個長度為n的一維動態數組v,初始每個元素都賦值為i vector<vector<int> > ve; //建立一個二維動態數組ve(特別註意:'>'和'>'之間有一個空格,如果不打,會被認為是位移運算而報錯) v.push_back(a); //將a元素放在v數組的末尾,且數組長度加1 v.begin(); //返回數組v的首元素 v.end(); //返回數組v的末端元素的下一個 v.size(); //返回數組v的長度 v.erase(a); //刪除a位置的數據,並傳回下一個數據的位置 v.resize(n,m); //重定義v的長度為n,若n小於原數組的長度,就刪除多餘元素,若n大於原數組的長度,則將多出來的部分賦值為m vector<int>::iterator it; //建立一個叫it的迭代器
同時,在使用vector是需要用特點的頭文件
#include<vector> //使用vector的特定頭文件,雖然我更喜歡用萬能頭
優點
動態數組可以隨時調整數組大小,並且提供額外的方法增加、減小數組中的元素,相對於數組十分的高效。
缺點
運行速度與數組相比較慢。