C++ vector是C++标准库中的一个动态数组容器,它可以自动调整大小以容纳更多元素。vector提供了许多有用的功能,如在末尾添加元素、删除元素、访问元素等。本文将介绍C++ vector的基本用法和一些高级特性。
- 引入头文件
要使用C++ vector,首先需要引入相应的头文件:
#include <vector>
- 声明和初始化vector
可以使用以下几种方式声明和初始化vector:
// 声明一个空的vector
std::vector<int> vec1;
// 声明并初始化一个具有5个元素的vector
std::vector<int> vec2(5);
// 声明并初始化一个具有5个元素的vector,所有元素都为0
std::vector<int> vec3(5, 0);
// 声明并初始化一个具有5个元素的vector,元素为{1, 2, 3, 4, 5}
std::vector<int> vec4 = {1, 2, 3, 4, 5};
- 访问vector元素
可以使用下标操作符[]或at()函数访问vector中的元素。注意,下标从0开始。
// 访问第一个元素
int first_element = vec[0];
// 访问第二个元素
int second_element = vec.at(1);
- 修改vector大小
可以使用resize()函数调整vector的大小。如果新大小大于当前大小,新元素将被初始化为默认值;如果新大小小于当前大小,多余的元素将被删除。
// 调整vector大小为10,新元素初始化为0
vec.resize(10);
// 调整vector大小为3,删除多余的元素
vec.resize(3);
- 添加和删除元素
可以使用push_back()函数在vector末尾添加元素,使用pop_back()函数删除最后一个元素。还可以使用insert()函数在指定位置插入元素,使用erase()函数删除指定位置的元素。
// 在末尾添加一个元素
vec.push_back(42);
// 删除最后一个元素
vec.pop_back();
// 在第2个位置插入一个元素
vec.insert(vec.begin() + 1, 42);
// 删除第2个元素
vec.erase(vec.begin() + 1);
- 遍历vector
可以使用范围for循环或迭代器遍历vector中的元素。
// 使用范围for循环遍历
for (int element : vec) {
std::cout << element << " ";
}
// 使用迭代器遍历
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
- 排序和查找
可以使用sort()函数对vector进行排序,使用find()函数查找指定元素。
// 对vector进行排序
std::sort(vec.begin(), vec.end());
// 查找值为42的元素
auto it = std::find(vec.begin(), vec.end(), 42);
if (it != vec.end()) {
std::cout << "找到元素:" << *it << std::endl;
} else {
std::cout << "未找到元素" << std::endl;
}