C++ vector 容器
概述
vector 是 C++ 标准模板库(STL)中的一个重要组成部分,它提供了一种动态数组的数据结构。vector 容器能够根据需要自动调整其大小,这使得它在管理数据集合时非常灵活和高效。在 C++ 中,vector 通常用于存储一系列元素,这些元素可以是基本数据类型(如 int、double 等),也可以是复杂的数据结构(如自定义类)。
基本操作
创建 vector
创建 vector 的基本方式是通过包含 <vector> 头文件,并使用 std::vector 命名空间。例如,创建一个整数类型的 vector 可以如下进行:
#include <vector>
std::vector<int> myVector;
添加元素
vector 提供了多种添加元素的方法,包括 push_back(),它可以在容器的末尾添加一个新元素:
myVector.push_back(10);
myVector.push_back(20);
访问元素
可以通过索引来访问 vector 中的元素,类似于访问数组元素:
int firstElement = myVector[0];
int secondElement = myVector[1];
修改元素
可以直接通过索引来修改 vector 中的元素:
myVector[0] = 100;
删除元素
可以使用 pop_back() 来删除 vector 末尾的元素:
myVector.pop_back();
遍历 vector
可以使用范围基于的 for 循环来遍历 vector 中的所有元素:
for (int element : myVector) {
std::cout << element << std::endl;
}
vector 的大小
vector 的大小可以通过 size() 方法获取:
int size = myVector.size();
vector 的容量
vector 的容量可以通过 capacity() 方法获取,它表示在不重新分配内存的情况下,vector 可以存储的元素数量:
int capacity = myVector.capacity();
高级特性
vector 的内存管理
vector 在内部维护一段连续的内存空间,当元素数量超过当前容量时,vector 会自动重新分配更大的内存空间,并将现有元素复制到新空间中。这个过程称为“重新分配”。为了避免频繁的重新分配,vector 通常会分配比当前所需更多的内存,这就是为什么 capacity() 通常大于 size()。
迭代器
vector 提供了迭代器,它是一种用于访问容器元素的对象。迭代器可以用于各种 STL 算法,例如 std::sort():
std::sort(myVector.begin(), myVector.end());
vector 的效率
虽然 vector 提供了动态数组的所有优点,但在某些操作(如插入和删除元素)时可能会效率较低,因为这些操作可能会导致内存中的元素移动。因此,在选择数据结构时,应根据具体的应用场景来决定是否使用 vector。
结论
vector 是 C++ 中一个强大且灵活的数据结构,适用于大多数需要动态数组的情况。通过了解其基本操作和高级特性,开发者可以更有效地使用 vector 来管理数据集合。
4496

被折叠的 条评论
为什么被折叠?



