在 C++ 中,vector 是一种动态数组(Dynamic Array)容器,它可以存储任意类型的数据,并且支持快速随机访问、尾部插入/删除等操作。相较于传统的数组,vector 具有更好的可扩展性和灵活性。
下面是一些 vector 的基本用法:
- 创建 vector
#include <vector>
using namespace std;
vector<int> v; // 创建一个空的 int 类型的 vector
vector<double> vd(10); // 创建一个包含 10 个 double 类型元素的 vector
vector<string> vs = { "hello", "world" }; // 创建一个包含两个 string 类型元素的 vector
- 访问 vector 中的元素
v[0] = 10; // 通过下标访问 vector 中的元素
int x = v.at(0); // 通过 at() 函数访问 vector 中的元素
int y = v.front(); // 获取 vector 中的第一个元素
int z = v.back(); // 获取 vector 中的最后一个元素
- 在 vector 尾部插入/删除元素
v.push_back(20); // 在 vector 的尾部插入一个元素
v.pop_back(); // 删除 vector 中的最后一个元素
- 获取 vector 的大小和容量
int size = v.size(); // 获取 vector 中元素的个数
int capacity = v.capacity(); // 获取 vector 的容量
- 清空 vector
v.clear(); // 清空 vector 中的所有元素
vector 的底层实现是基于数组和指针,它采用了动态内存分配的方式来实现可变长度。当我们向 vector 中插入新元素时,系统会自动将其存储在一个连续的内存地址中,并根据需要动态调整内存大小。vector 内部一般包含三个指针:指向第一个元素的指针、指向最后一个元素的指针、以及指向当前分配的内存空间末尾的指针。
总之,vector 是 C++ 中非常重要的容器类,它具有灵活性高、可扩展性好等优点,并且在实现上较为简单易懂。