在 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
。