C++中vector容器的使用和操作

需积分: 24 0 下载量 95 浏览量 更新于2024-09-14 收藏 24KB DOCX 举报
vector用法详解 vector是C++标准库中的一种容器类,相当于一个动态数组,可以存储不同的数据类型。它的使用非常灵活,提供了多种操作来管理和访问元素。 **定义和初始化** vector的定义和初始化有多种方式: 1. 默认初始化:`vector<typeName>v1;`,默认情况下,v1为空。 2. 复制初始化:`vector<typeName>v2(v1);` 或 `v2 = v1;`,v2是v1的一个副本。 3. 指定大小和初始值的初始化:`vector<typeName>v3(n, i);`,v3包含n个值为i的typeName类型元素。 4. 使用数组初始化:`int a[4] = {0, 1, 2, 3, 3}; vector<int>v5(a, a + 5);`,v5的size为5,v5被初始化为a的5个值。 **值初始化** vector的值初始化遵循以下规则: 1. 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。 2. 如果保存的式含有构造函数的类类型的元素,标准库使用该类型的构造函数初始化。 3. 如果保存的式没有构造函数的类类型的元素,标准库产生一个带初始值的对象,使用这个对象进行值初始化。 **vector对象的操作** vector对象提供了多种操作来管理和访问元素: 1. `push_back`:在容器的最后添加一个值为t的数据,容器的size变大。 2. `size`:返回容器中数据的个数,size返回相应vector类定义的size_type的值。 3. `resize`:将v的容量翻倍(或将v的容量设置为指定的值),例如`v.resize(2 * v.size)`或`v.resize(2 * v.size, 99)`。 4. `empty`:判断vector是否为空。 **其他操作** vector还提供了其他操作,例如: * `at`:访问指定索引的元素,例如`v.at(0)`。 * `operator[]`:访问指定索引的元素,例如`v[0]`。 * `front`:访问容器的第一个元素,例如`v.front()`。 * `back`:访问容器的最后一个元素,例如`v.back()`。 * `begin`和`end`:访问容器的开始和结束迭代器,例如`v.begin()`和`v.end()`。 vector是一个功能强大且灵活的容器类,提供了多种操作来管理和访问元素。