c++中vector的用法_C++动态数组容器vector使用教程

vector是C++ STL中动态数组容器,需包含头文件,支持自动内存管理;可使用push_back添加、pop_back删除元素,通过size、empty、at等方法操作数据;推荐用范围for循环遍历;其内部连续存储并动态扩容,可通过reserve预分配内存提升性能。

vector 是 C++ 标准模板库(STL)中最常用的动态数组容器之一。它能自动管理内存,支持在运行时动态添加或删除元素,使用起来比普通数组更加灵活和安全。

1. 包含头文件并声明 vector

要使用 vector,必须包含对应的头文件:

#include

声明一个 vector 的基本语法如下:

std::vector vec; // 存储 int 类型的空 vector
std::vector values(5); // 初始化为 5 个元素,值为 0.0
std::vector names{"Alice", "Bob", "Charlie"}; // 使用初始化列表

2. 常用操作方法

vector 提供了丰富的成员函数来操作数据:

  • size():返回当前元素个数
  • empty():判断是否为空,返回 true 或 false
  • push_back(value):在末尾添加一个元素
  • pop_back():删除最后一个元素
  • at(i)[i]:访问索引 i 处的元素(at 会做越界检查)
  • clear():清空所有元素
  • resize(n):调整 vector 大小为 n
  • front()back():分别获取第一个和最后一个元素

示例代码:

std::vector nums;
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);

for (int i = 0; i    std::cout }
// 输出:10 20 30

3. 遍历 vector

有多种方式可以遍历 vector:

  • 下标遍历:适合已知索引的情况
  • 范围 for 循环(推荐):
for (const auto& value : vec) {
   std::cout }
  • 迭代器遍历
for (auto it = vec.begin(); it != vec.end(); ++it) {
   std::cout }

4. 动态扩容机制

vector 内部使用连续内存存储元素,当容量不足时会自动重新分配更大的空间,并将原有数据复制过去。虽然这个过程对开发者透明,但频繁插入可能导致性能开销。可通过 reserve(n) 预先分配内存以提高效率:

vec.reserve(100); // 预留 100 个元素的空间

基本上就这些。vector 封装了动态数组的复杂性,让程序员可以专注于逻辑开发,而不必手动管理内存。熟练掌握它的常用操作,是写好 C++ 程序的基础。不复杂但容易忽略细节,比如越界访问或不必要的拷贝,使用时注意即可。