vector物件的初始化和常用操作
使用vector需要包含標頭檔案vector。
1、初始化vector物件的方法
1)vector<T> v1; // v1是一個空vector,它潛在的元素是T型別的,執行預設初始化。
2)vector<T> v2(v1); // v2中包含有v1所有元素的副本。
3)vector<T> v2 = v1; // 等價於v2(v1)
4)vector<T> v3(n, val); // v3包含了n個重複的元素val
5)vector<T> v4(n); // v4包含了n個重複地執行了值初始化的物件。如果vector物件的元素是元素內建型別,比如int,則元素初始值自動設為0;如果元素是某種類型別,比如string,則元素由類預設初始化。
6)vector<T> v5{a,b,c,...} // v5包含了初始值個數的元素,每個元素被賦予相應的初始值
7)vector<T> v5={a,b,c,...} // 等價於v5{a,b,c,...}
注意:如果用的是花括號,可以表述成我們想列表初始化該vector物件。初始化過程會盡可能地把花括號內的值當初元素初始值的列表來處理,只有在無法執行列表初始化時才會考慮其他初始化方式。
1 int main() 2 { 3 vector<int> v1(10); // 10個值為0的元素 4 vector<int> v2{ 10}; // 一個值為10的元素 5 vector<int> v3(10, 1); // 10個值為1的元素 6 vector<int> v4{ 10, 1 }; // 2個元素,分別是10,1 7 vector<string> v5{ 10 }; // 10個預設初始的元素 8 vector<string> v6{ 10, "hello" }; // 10個值為"hello"的元素 9 return 0; 10 }
2、常用操作
1)v.empty() 如果v不含有任何元素,返回真;否則返回假。
2)v.size() 返回v中元素的個數。
3)v.push_back(t) 向v的尾端新增一個值為t的元素。
4)v[n] 返回v中第n個位置上元素的引用。
5)v1 = v2 用v2中元素的拷貝替換v1中的元素。
6)v1={a,b,c,...} 用列表中元素的拷貝替換v1中的元素。
7)v1 == v2 v1和v2相等當且僅當它們的元素數量相同且對應位置的元素值都相同。
8)v1 !=v2
9)<,<=,>,>= 以字典序順序進行比較
注意:vector物件(以及string物件)的下標運算子可用於訪問已存在的元素,而不能用於新增元素。