在 C++ 中,vector 是一个基于模板的序列容器,它封装了可以动态改变大小的数组。以下是关于 vector 的详细解释:
基本用法
- 定义和初始化:
vector<T>定义一个类型为T的向量。例如,vector<int> v;创建一个空的整数向量。你也可以用初始化列表vector<int> v = {1, 2, 3};创建并初始化向量。 - 添加元素: 使用
push_back(value)在向量的末尾添加元素。 - 访问元素: 通过
operator[]或at(index)访问元素。at方法在越界时抛出异常,而operator[]不进行边界检查。 - 大小和容量: 使用
size()来获取向量中的元素个数,capacity()获取向量的当前容量。 - 迭代器: 提供迭代器(如
begin(),end())来遍历向量中的元素。
特点和注意事项
- 动态大小: 与普通数组不同,
vector可以根据需要动态增长和收缩。 - 内存管理: 当新元素添加到
vector使得当前容量不足时,vector会自动重新分配内存以容纳更多元素。 - 性能:
vector提供对尾部元素的快速访问和添加,但在中间或开始插入元素可能较慢,因为可能涉及元素的移动。 - 连续存储:
vector的元素存储在连续的内存位置上,这意味着你可以像使用数组一样,通过指针算术操作vector的元素。
示例代码
1 |
|
这个示例展示了如何创建 vector,向其中添加元素,访问元素以及使用迭代器遍历 vector。