1.定义
标准库类型vector用于表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。我们可称之为“容器”。
2.头文件
#include <vector>
using std::vector;
3.定义和初始化vector对象
vector<T> v1
vector<string> str; //默认初始化,str不含任何元素
vector<string> articles = {"a", "an", "the"}; //列表初始化,注意该处为花括号
圆括号和花括号的区别:
(1)圆括号:提供的值是用来构造vector对象的。
(2)花括号:提供的值是用来列表初始化vector对象的。
vector<int> v1(10); //v1有10个元素,每个的值都是0
vector<int> v2{10}; //v2有1个元素,该元素的值是10
vector<int> v3(10, 1); //v3有10个元素,每个的值都是1 (容量,初值)
vector<int> v4{10, 1}; //v4有2个元素,值分别是10和1
4.向vector对象中添加元素:push_back
如果想创建一个vector对象令其包含多个元素时,最好的方法是:先创建一个空vector,然后在运行时利用vector的成员函数push_back向其中添加元素。push_back负责把一个值当成vector对象的尾元素“压到”vector对象的“尾端”。
vector<int> v2;
for(int i = 0; i != 100; ++i)
v2.push_back(i);
5.特点
vector对象与C语言的数组类型有所不同。
vector对象可以满足C++标准的“在运行时高效快速地添加元素”的要求。在定义vector对象时,设定其大小也就没什么必要。只有一种例外,就是所有元素的值都是一样的。
如果循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环。
6.其他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
<, <=, >, >= //以字典顺序进行比较