C++ vector 容器
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 循环或传统的 for 循环遍历 vector
:
// 范围基础的 for 循环
for (int element : myVector) {
std::cout << element << std::endl;
}
// 传统 for 循环
for (size_t i = 0; i < myVector.size(); ++i) {
std::cout << myVector[i] << std::endl;
}
vector 的大小
vector
的大小可以通过 size()
方法获取:
size_t vectorSize = myVector.size(); // 获取 vector 的大小
vector 的容量
vector
的容量可以通过 capacity()
方法获取,它表示在不重新分配内存的情况下,vector
可以容纳的元素数量:
size_t vectorCapacity = myVector.capacity(); // 获取 vector 的容量
高级特性
###reserve() 方法
reserve()
方法可以用来预先分配 vector
的内存,以优化性能。这在已知 vector
将要存储大量元素时特别有用:
myVector.reserve(1000); // 预先分配 1000 个元素的内存
vector 的内存管理
vector
的内存管理是自动的。当 vector
的大小超过其容量时,vector
会自动重新分配内存并复制现有元素到新的内存位置。这个过程可能会导致性能开销,因此在使用 vector
时,合理地预分配内存是非常重要的。
vector 的效率
vector
在末尾添加和删除元素通常是非常高效的,因为这些操作通常不需要移动其他元素。然而,在 vector
的开始或中间插入或删除元素可能会导致大量的元素移动,从而降低效率。
结论
vector
是 C++ 中一个强大且灵活的数据结构,适用于大多数需要动态数组的情况。通过了解其基本操作和高级特性,开发者可以更有效地使用 vector
来管理数据集合。