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


