返回

C++ 入门 —— vector (STL)

后端

探索 C++ 中的强大容器:vector

在编程世界中,高效地存储和操作数据是至关重要的。在 C++ 中,vector 作为一种动态数组,闪亮登场,为我们处理数据提供了强有力的支持。

认识 vector

想象一下一个超级便利的橱柜,可以根据需要随意添加或删除物品。这就是 vector 的魅力所在!它是一种顺序容器,就像一个不断延伸的数组,可以动态调整大小。这意味着您不必在创建时指定固定容量,而是可以在运行时灵活地扩展它。

操作 vector

就像对待普通数组一样,我们可以使用 vector 的下标来访问和修改元素。但它还有更多惊喜!vector 提供了一系列便捷的方法来管理数据:

  • 添加元素:push_back() 在末尾添加,用 insert() 在指定位置插入。
  • 删除元素:pop_back() 删除最后一个元素,用 erase() 从特定位置移除。
  • 访问元素: 直接使用下标 vector[i] 就能轻松获取元素。
  • 获取大小: size() 告诉您 vector 中存放了多少个元素。

高级用法

除了基本操作,vector 还隐藏着一些高级技能:

  • 容量管理: capacity() 揭示了 vector 当前分配的内存大小,而 reserve() 可以预留指定大小的内存,为未来扩容做准备。
  • 迭代: begin()end() 函数返回迭代器,您可以用它们像漫步公园一样轻松遍历 vector 元素。
  • 排序和查找: sort() 可以将 vector 排序得井井有条,而 find() 就像一个侦探,帮您找到特定元素的位置。

代码示例

为了让您亲身体验 vector 的威力,我们准备了一个小代码示例:

#include <vector>

int main() {
  // 创建一个整数 vector
  vector<int> numbers;

  // 添加一些数字
  numbers.push_back(10);
  numbers.push_back(20);
  numbers.push_back(30);

  // 访问第一个元素
  int firstNumber = numbers[0];
  cout << "第一个元素是:" << firstNumber << endl;

  // 删除最后一个元素
  numbers.pop_back();

  // 迭代 vector 并打印元素
  for (int number : numbers) {
    cout << number << " ";
  }
  cout << endl;

  return 0;
}

在这个例子中,我们创建了一个 vector,添加了一些数字,并展示了如何访问、删除和遍历元素。简单明了,不是吗?

总结

vector 是 C++ 中一个强大的工具,它可以轻松高效地处理各种数据。从存储简单的数字到复杂的对象,vector 都能游刃有余。通过掌握它的基础、操作和高级用法,您将解锁数据管理的无限潜力。

常见问题解答

  • vector 和普通数组有什么区别?
    vector 可以动态调整大小,而数组的容量是固定的。

  • 如何判断 vector 是否已满?
    使用 capacity()size() 来检查分配的内存大小和当前元素数量。

  • vector 中的元素是如何存储的?
    元素以连续内存块存储,并通过下标快速访问。

  • 能否在 vector 中存储不同类型的数据?
    不行,vector 只能存储相同类型的数据。

  • 如何使用 vector 作为队列或栈?
    vector 可以通过 push_back()pop_back() 操作来模拟队列,通过 push_back()pop_back()erase(begin()) 来模拟栈。