vector是同一種類型的對(duì)象的集合,每個(gè)對(duì)象都有一個(gè)對(duì)應(yīng)的整數(shù)索引值。和string對(duì)象一樣,標(biāo)準(zhǔn)庫將負(fù)責(zé)管理與存儲(chǔ)元素相關(guān)的內(nèi)存。我們把vector稱之為容器。使用vector類型必須包含 include<vector>。
vector 是一個(gè)類模板(class template)。
vector的定義和初始化: vector<string> text; //保存類型為string的對(duì)象,默認(rèn)構(gòu)造函數(shù)text為空
vector<string> text2(10); //保存類型為string的對(duì)象,包含10個(gè)空字符串
vector<int> ive(10,9); //保存int的對(duì)象,保存10個(gè)值為9的整形變量
vector<int> ive2(ive); //使用ive初始化ive2
向vector添加元素:
while(cin>>word)
{
text.
push_back(word); //使用push_back可以向vector的后面插入新的元素。
}
注意:*vector對(duì)象(以及其他標(biāo)準(zhǔn)庫容器對(duì)象)的重要屬性就在于可以在運(yùn)行時(shí)高效的添加元素,因?yàn)関ector增長效率高,在元素值已知的情況下,最好是動(dòng)態(tài)的添加元素。
*雖然可以對(duì)給定元素個(gè)數(shù)的vector對(duì)象預(yù)先分配內(nèi)存,但更有效的方法是初始化一個(gè)空vector對(duì)象,然后再動(dòng)態(tài)的增加元素。
vector的下標(biāo)操作:for(vector<string>::size_type ix=0;ix!=text.
size();++ix)
{
cout<<text
[ix]<<endl;
}
*使用vector<string>::size_type類型可以接收vector<string>類型的大小。
*不在for循環(huán)之前取得vector的大小,而在for循環(huán)中計(jì)算text.size(),是因?yàn)関ector是可以增長的,所以它的元素?cái)?shù)目是不確定的。
*和string對(duì)象一樣,vector可以通過下標(biāo)直接訪問元素。
附表:vector操作
| v.empty() |
如果v為空,則返回true |
| v.size() |
返回v中元素的個(gè)數(shù) |
| v.push_back(t) |
需按不過v的末尾增加一個(gè)值為t的元素 |
| v[n] |
返回v中位置為n的元素 |
| v1=v2 |
吧v1的值與替換為v2中元素的副本 |
| v1==v2 |
如果v1與v2相等,則返回true |
| !=,<,<=,>,>= |
保持這些操作符慣有的含義 |