C++ vector容器详解:接口、用法与实例

std::vector 是 C++ 标准库中一个强大的容器,提供动态数组的功能,可以方便地存储和管理元素。本文将详细介绍 std::vector 容器的常用接口、用法以及实例代码,帮助你快速掌握其使用技巧。

1. 构造函数和析构函数

  • vector():默认构造函数,创建一个空的 std::vector
  • vector(size_type count, const T& value):创建一个包含 count 个值为 value 的元素的 std::vector
  • vector(const vector& other):拷贝构造函数,通过复制另一个 std::vector 创建一个新的 std::vector
  • ~vector():析构函数,销毁 std::vector 对象及其元素。

2. 容量操作

  • size():返回 std::vector 中元素的个数。
  • empty():检查 std::vector 是否为空。
  • resize(size_type count):重新调整 std::vector 的大小,将其设置为 count 个元素。
  • reserve(size_type count):预留 count 个元素的空间,以提高插入元素的效率。
  • shrink_to_fit():释放多余的内存空间,将容量调整为与大小相等。

3. 访问元素

  • operator[]:使用下标操作符访问 std::vector 中的元素。
  • at(size_type pos):访问指定位置 pos 的元素,并进行边界检查。
  • front():返回第一个元素的引用。
  • back():返回最后一个元素的引用。
  • data():返回指向 std::vector 中第一个元素的指针。

4. 修改容器

  • push_back(const T& value):在 std::vector 的末尾插入一个元素。
  • pop_back():删除 std::vector 的最后一个元素。
  • insert(iterator pos, const T& value):在指定位置插入一个元素。
  • erase(iterator pos):删除指定位置的元素。
  • clear():清空 std::vector 中的所有元素。

5. 迭代器相关

  • begin():返回指向 std::vector 中第一个元素的迭代器。
  • end():返回指向 std::vector 中最后一个元素的下一个位置的迭代器。
  • rbegin():返回指向 std::vector 中最后一个元素的逆向迭代器。
  • rend():返回指向 std::vector 中第一个元素的前一个位置的逆向迭代器。

实例代码

#include <iostream>
#include <vector>

int main() {
  // 创建一个空的 vector
  std::vector<int> numbers;

  // 添加元素
  numbers.push_back(10);
  numbers.push_back(20);
  numbers.push_back(30);

  // 访问元素
  std::cout << '第一个元素:' << numbers[0] << std::endl;
  std::cout << '最后一个元素:' << numbers.back() << std::endl;

  // 迭代器遍历
  std::cout << '所有元素:';
  for (auto it = numbers.begin(); it != numbers.end(); ++it) {
    std::cout << *it << ' ';
  }
  std::cout << std::endl;

  return 0;
}

总结

std::vector 是 C++ 中一个非常实用的容器,提供了丰富的接口和灵活的操作方式。通过学习本文,相信你已经对 std::vector 容器有了更深入的了解,并能够在实际编程中灵活运用。


原文地址: https://www.cveoy.top/t/topic/r3A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录