标准库类型vector表示对象的集合,其中所有对象的类型都相同。
引入
1 2
| #include <vector> using namespcae std;
|
vector 是模板而非类型,由vector生成的类型必须包含vector中元素的类型
1 2
| vector<int> ivec; vector<Sales_item> Sales_vec;
|
某些编译器可能需要vector<vector<int> >来定义vector的元素还是vector的场景。
定义和初始化vector对象
1 2 3 4 5 6 7
| vector<T> v1; vector<T> v2(v1); vector<T> v2 = v1; vector<T> v3(n, val); vector<T> v4(n); vector<T> v5{a, b, c...}; vector<T> v5 = {a, b, c...}
|
C++新标准:列表初始化
1
| vector<string> articles = {"a", "an", "the"};
|
列表初始值还是元素数量
1 2 3 4 5
| vector<int> v1(10); vector<int> v2{10};
vector<int> v3(10, 1); vector<int> v4{10, 1};
|
向vector对象中添加元素
创建一个数组包含的元素是从0到99。
1 2 3
| vector<int> v2; for (int i = 0; i != 100; ++i) v2.push_back(i)
|
其他vector操作
1 2 3 4 5 6 7 8 9
| v.empty() v.size() v.push_back(t) v[n] v1 = v2 vl = {a,b,c... } v1 == v2 v1 != v2 <,<=, >,>=
|
将列表中元素进行平方
1 2 3 4 5 6
| vector<int> v{1, 2, 3, 4, 5, 6}; for (auto &i : v) i *= i; for (auto i : v) cout << i << " "; cout << endl;
|
要使用size_type,需首先指定他是由哪种类型定义的。vector对象的类型总是包含着元素的类型
1 2
| vector<int>::size_type vector::size_type
|
vector对象(以及string)的下注运算符可用于访问已存在的元素,而不能用于添加元素。