C++ 入门 —— vector (STL)
2023-10-28 19:15:42
探索 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())
来模拟栈。