表示物件的合集,其中所有物件的型別都相同。集閤中每個物件都有與之對應的索引,索參照於存取物件,我們也常常稱之爲物件
vector<T> a1 //a1是一個空vector,他潛在的元素是T型別的,執行預設初始化
vector<T> a2(a1) //v2中含有v1所有元素的副本
vector<T> a3=a1 //等價於a3(a1)
vector<T> a4(n,val) //a4中包含了n個重複的元素,每個元素都是val
vector<T> a5(n) //包含了n個預設初始化物件
vector<T> a6{a,b,c,d,e} //a6包含了初始值個數的元素,每個元素被賦予相應的初始值
vector<T> a7={a,b,c,d,e} //等價於a7{a,b,c,d,e}
#include<iostream>
using namespace std;
#include<vector>
int main()
{
vector<int> a1;
vector<int> a2(a1);
vector<int> a3=a1;
vector<int> a4(5, 10);
vector<int> a5{1,2,3,4,5};
vector<int> a6 = { 1, 2, 3, 4, 5 };
//cout << a1[0] << endl;
//cout << a2[0] << endl;
//cout << a3[0] << endl; 因爲a1,a2,a3都爲空,所以不能存取
cout << a4[0] << endl;
cout << a5[0] << endl;
cout << a6[0] << endl;
system("pause");
return 0;
}
如果用的圓括號,可以說提供的值是用來構造vector物件的
vector<int> a1(10); //有10個元素,每個都是0
vector<int> a2{ 10 }; //有1個元素,值爲10
vector<int> a3(10, 1); //有10個元素,每個都是1
vector<int> a4{ 10, 1 }; //有兩個元素,值分別是10和1
如果使用的是花括號,可以表述爲我們想列表初始化該vector物件。
vector<string> b1{ "abc" }; //有一個元素
//vector<string> b2("abc"); //不能使用字串構件vector物件
vector<string> b1{ 10 }; //有10個元素
vector<string> b1{ 10, "abc" }; //有10個值爲abc的元素
要想初始化vector物件,花括號裡的值必須與元素型別相同。如果不同,則不呢個作爲元素的初始值,因此編譯器會嘗試用預設初始化vector物件
用該方法新增的物件都是新增到vector物件的末尾
vector<int>a;
for (int i = 0; i < 10; i++)
{
a.push_back(i);
}
a.empty() //如果不含任何元素則爲真
a.size() //返回元素個數
a.push_back() //向尾端新增一個元素
a[n] //返回第n個元素的參照
a=b //替換元素
a={a,b,c,d} //替換元素
a==b //判斷是否相等
a!=b //判斷是否不等
<,<=,>,>= //以字典順序進行比較
使用下標運算子能獲取到指定的元素。和string一樣,vector的物件下標也是從0開始,下標的型別是相應的size_type。