在C++中,std::vector
是一个非常灵活且常用的容器,它提供了动态数组的功能。以下是一些基本的使用方式:
包含头文件
要使用 std::vector
,首先需要包含头文件 <vector>
。
#include <vector>
创建 vector
// 创建一个空的 vector
std::vector<int> vec;
// 创建一个 vector 并初始化为特定大小
std::vector<int> vec(5);
// 创建一个 vector 并初始化为特定大小和值
std::vector<int> vec(5, 10);
// 使用初始化列表创建 vector
std::vector<int> vec = {1, 2, 3, 4, 5};
访问元素
// 通过下标访问元素
int value = vec[0];
// 使用 at() 方法访问元素,当越界时会抛出 std::out_of_range 异常
int value = vec.at(0);
修改元素
// 通过下标修改元素
vec[0] = 10;
// 使用 at() 方法修改元素
vec.at(0) = 10;
添加元素
// 在 vector 末尾添加一个元素
vec.push_back(6);
// 在 vector 开头添加一个元素
vec.insert(vec.begin(), 0);
// 在特定位置添加一个元素
auto it = vec.begin() + 1;
vec.insert(it, 7);
删除元素
// 删除 vector 末尾的元素
vec.pop_back();
// 删除特定位置的元素
vec.erase(it);
// 删除从 pos 到 pos + n 的元素
vec.erase(it, it + n);
遍历 vector
// 使用范围基 for 循环
for (int value : vec) {
std::cout << value << " ";
}
// 使用传统 for 循环
for (size_t i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
// 使用迭代器
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
获取 vector 信息
// 获取 vector 的大小
size_t size = vec.size();
// 检查 vector 是否为空
bool empty = vec.empty();
// 获取 vector 的容量
size_t capacity = vec.capacity();
// 获取 vector 可以容纳的元素数量(不进行内存分配)
size_t max_size = vec.max_size();
清空 vector
vec.clear();
调整 vector 大小
// 调整 vector 的大小
vec.resize(10);
// 调整 vector 的大小并初始化新元素
vec.resize(10, 0);
vector 的一些其他操作
// 在两个 vector 之间添加元素
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = {4, 5, 6};
vec1.insert(vec1.end(), vec2.begin(), vec2.end());
// 交换两个 vector 的内容
std::swap(vec1, vec2);
// 检查两个 vector 是否相等
bool isEqual = (vec1 == vec2);
std::vector
提供了许多其他功能和操作,这些只是最基本的一些。正确使用 std::vector
可以极大地提高程序的灵活性和效率。