在 C++ 中,vector 是一个基于模板的序列容器,它封装了可以动态改变大小的数组。以下是关于 vector 的详细解释:

基本用法

  1. 定义和初始化: vector<T> 定义一个类型为 T 的向量。例如,vector<int> v; 创建一个空的整数向量。你也可以用初始化列表 vector<int> v = {1, 2, 3}; 创建并初始化向量。
  2. 添加元素: 使用 push_back(value) 在向量的末尾添加元素。
  3. 访问元素: 通过 operator[]at(index) 访问元素。at 方法在越界时抛出异常,而 operator[] 不进行边界检查。
  4. 大小和容量: 使用 size() 来获取向量中的元素个数,capacity() 获取向量的当前容量。
  5. 迭代器: 提供迭代器(如 begin(), end())来遍历向量中的元素。

特点和注意事项

  • 动态大小: 与普通数组不同,vector 可以根据需要动态增长和收缩。
  • 内存管理: 当新元素添加到 vector 使得当前容量不足时,vector 会自动重新分配内存以容纳更多元素。
  • 性能: vector 提供对尾部元素的快速访问和添加,但在中间或开始插入元素可能较慢,因为可能涉及元素的移动。
  • 连续存储: vector 的元素存储在连续的内存位置上,这意味着你可以像使用数组一样,通过指针算术操作 vector 的元素。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>

int main() {
std::vector<int> vec;
vec.push_back(10);
vec.push_back(20);
vec.push_back(30);

// 使用索引访问元素
std::cout << "第一个元素: " << vec[0] << std::endl;

// 使用迭代器遍历向量
for(auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << ' ';
}
std::cout << std::endl;

return 0;
}

这个示例展示了如何创建 vector,向其中添加元素,访问元素以及使用迭代器遍历 vector


本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。