vector
是一个非常常用的标准模板库(STL)容器,它提供了一种能够存储同一类型元素的动态数组。
动态大小:vector
能够根据需要自动调整其大小,以存储新元素。当向vector
中添加元素时,如果当前分配的存储空间不足,vector
会自动分配更多的空间并将现有元素复制到新的存储空间中。
随机访问:vector
支持通过索引快速访问元素,类似于普通数组。你可以使用下标操作符[]
或at()
成员函数来访问vector
中的元素。
尾端操作高效:在vector
的末尾添加或删除元素通常是非常高效的,因为这些操作只是改变了vector
的大小,而不需要移动其他元素(除非需要重新分配内存)。
存储连续性:vector
中的元素在内存中连续存储,这意味着可以使用指针操作高效地遍历vector
中的元素。
要使用 vector
,首先需要包含相应的头文件:
#include <vector>
创建和初始化
vector<int> v1; // 创建一个空的vector
vector<int> v2(5); // 创建一个包含5个元素的vector,每个元素的初始值为0
vector<int> v3(5, 2); // 创建一个包含5个元素的vector,每个元素的初始值为2
vector<int> v4 = { 1, 2, 3, 4, 5 }; // 使用列表初始化
添加元素
v1.push_back(10); // 在v1的末尾添加元素10
访问元素
int value1 = v2[1]; // 访问v2的第二个元素(注意:下标从0开始)
int value2 = v2.at(1); // 同样访问v2的第二个元素,但at()会进行范围检查
删除元素
v1.pop_back(); // 删除v1的最后一个元素
v2.erase(v2.begin() + 1); // 删除v2的第二个元素
v2.erase(v2.begin(), v2.begin() + 2); // 删除v2的前两个元素
获取大小
int size = v3.size(); // 获取v3的大小
遍历
// 使用范围for循环
for (int value : v4) {std::cout << value << " ";
}// 使用迭代器
for (std::vector<int>::iterator it = v4.begin(); it != v4.end(); ++it) {std::cout << *it << " ";
}
检查是否为空
v1.empty();//检查vector是否为空
清空 vector
v1.clear();//清空 vector