C++ 面试题
目录

C++ 中 vector 的特点和用法

· 约 5 分钟读完 · 第 55 / 181 章

推荐答案

本题详细解读

1. std::vector 的特点

  • 动态数组:std::vector 是 C++ 标准库中的一个动态数组容器,能够自动管理内存,支持动态扩展和收缩。
  • 连续存储:std::vector 中的元素在内存中是连续存储的,因此可以通过指针算术来访问元素。
  • 随机访问:std::vector 支持通过下标([] 或 at())快速访问任意位置的元素,时间复杂度为 O(1)。
  • 自动扩容:当 std::vector 的容量不足以容纳新元素时,它会自动分配更大的内存空间,并将原有元素复制到新空间。
  • 丰富的成员函数:std::vector 提供了多种成员函数,如 push_back()、pop_back()、size()、empty() 等,方便操作和管理元素。

2. std::vector 的常用操作

  • 创建 std::vector:

  • 添加元素:

  • 访问元素:

  • 遍历 std::vector:

  • 删除元素:

  • 获取大小和容量:

  • 清空 std::vector:

3. 注意事项

  • 内存管理:虽然 std::vector 会自动管理内存,但在频繁插入和删除操作时,可能会导致多次内存重新分配,影响性能。可以通过 reserve() 方法预先分配足够的内存来优化性能。
  • 边界检查:使用 at() 方法访问元素时,如果下标越界,会抛出 std::out_of_range 异常,而使用 [] 操作符则不会进行边界检查。
  • 迭代器失效:在 std::vector 中进行插入或删除操作时,可能会导致迭代器失效,需要特别注意。