标准库类型vector表示可变长度对象集合,其中所有的对象的类型都相同。vector常常被称为容器(container)。使用vector时,需要引入对应的头文件。vector本质上是一个类模板。
#include <vector> // 包含对应的头文件
using std::vector
1. vector的定义和初始化
vector<T> v1; // v1 是一个空vector,它潜在的元素是T类型,执行默认初始化
vector<T> V2(V1); // v2 中包含所有v1元素的副本
vector<T> v2 = v1; // 等价于V2(V1), V2中包含所有V1元素的副本
vector<T> v3(n, val); // v3中包含n个重复值的函数,每个元素的值都是val
vector<T> v4(n); // v4包含了n个重复的执行初始化的元素
vector<T> v5{a,b,c...} // v5包含了初值个数的元素,每个元素都被赋予了对应的初始值
vector<T> v5 = {a,b,c..} // 等价于V5{a,b, c...
2. vector的相关操作
v.empty() // 如果v不含任何元素,返回真;否则返回假
v.size() // 返回v中元素的个数
v.push_back(t) // 向v的尾端添加一个值为t的元素
v[n] // 返回v中第n个元素的引用
v1 = v2 // 用v2中元素的拷贝替换v1中的元素
v1 = {a,b,c...} // 用列表中的元素拷贝替换成v1中的元素
v1 == v2 // v1和v2相等(当且仅当他们的元素数量相同并且对应位置的元素值都相同)
v1 != v2
<, <=, >, >= // 以字典顺序进行比较
- 使用范围for语句遍历vector
vector<int> v{1,2,3,4,5,6,7,8,9};
for (auto &i : v) { // 遍历v中的每个元素,注意i是引用
i *= i; // 对每个元素求平方
}
for (auto i : v) { // 将v中的每个元素循环拷贝到i中
std::cout << i <<std::endl; //输出该元素
}
- vector<T>::size_type
与string相似,vector<T>::size_type 是由vector定义的size_type类型,用于函数v.size()的返回值类型。
vector<int> v1{1,2,3};
vector<char> v2{'a','b'};
vector<int>::size_type l1 = v1.size(); // 返回v1中元素的个数,注意返回值的类型
vector<char>::size_type l2 = v2.size(); // 返回v2中元素的个数,注意返回值的类型
注意:string和vector可以用下标进行访问元素,但不能添加元素。(只能对已知的元素进行操作)