本文共 1262 字,大约阅读时间需要 4 分钟。
vector是STL中最简单的序列式容器,定义在 <vector> 头文件中。它支持随机访问元素,类似于动态数组,同时拥有高效的迭代器支持,特别适用于频繁删除或随机访问元素的场景。此外,vector可以实现队列、数组和堆栈等数据结构的功能。
定义一个向量的方式如下:
#includeusing namespace std;vector myvt;
向量通过 push_back() 方法添加元素。例如:
myvt.push_back("something"); size() 返回当前元素数量。capacity() 返回向量能容纳的最大元素数量。max_size() 返回沿用最优率分配所能拥有的最大容量。reserve() 预留给容器的空间。resize()动态调整向量的大小。向量包含丰富的成员函数,支持高效操作:
使用 empty() 方法检查向量是否为空:
while (!myvt.empty()) { // 内容} 支持两种遍历方式:
vector vt;for (auto iter = vt.begin(); iter != vt.end(); ++iter) { // 类型处理} at(), front() 和 back() 来访问元素。向量支持多种高级操作:
at() 定位元素,如 myvt.at(0)。[] 操作符直接访问。front() 获取第一个元素,back() 获取最后一个元素。begin() 和 end() 获取起始和末尾迭代器。rbegin() 和 rend() 获取逆向迭代器。find() 方法查找元素位置。find_if() 组合进行复杂查找。push_back() 和 insert()(支持任意位置插入)。pop_back() 和 erase()(支持任意位置删除)。 -션操作:clear()清空,同时还可以使用swap()交换向量内容。vector<bool> 的特殊处理vector<bool> 提供了优化的内存布局,以更高效地存储布尔值。
从上述介绍可以看出,向量的使用步骤如下:
push_back() 向量中添加元素。reserve(), size(), clear() 等)管理容量和数据。通过合理使用 vector,开发者可以充分发挥其高效的容器特性和灵活的操作能力。
转载地址:http://ttzsz.baihongyu.com/