vector
是 C++ 中的一个非常常用的容器类,它提供了动态数组的功能,并且支持快速随机访问。下面是对 vector
用法的讲解:
定义和初始化
cpp#include <vector> // 需要包含这个头文件来使用 vector
std::vector<int> v; // 定义一个空的 vector
std::vector<int> v = {1, 2, 3, 4, 5}; // 定义并初始化一个 vector
访问元素
可以使用下标运算符 []
或者 at()
函数来访问 vector 中的元素:
cppint first = v[0]; // 访问第一个元素
int second = v.at(1); // 访问第二个元素
修改元素
可以使用下标运算符或者 at()
函数来修改 vector 中的元素:
cppv[0] = 10; // 将第一个元素修改为 10
v.at(1) = 20; // 将第二个元素修改为 20
向 vector 中添加元素
可以使用 push_back()
函数向 vector 的末尾添加一个元素:
cppv.push_back(30); // 向 vector 的末尾添加一个值为 30 的元素
从 vector 中删除元素
可以使用 erase()
函数从 vector 中删除一个元素:
cppv.erase(v.begin() + 2); // 删除第三个元素(从零开始计数)
vector 的大小和容量
可以使用 size()
和 capacity()
函数来获取 vector 的大小和容量:
cppint size = v.size(); // 获取 vector 的大小(元素的数量)
int capacity = v.capacity(); // 获取 vector 的容量(当前分配的内存大小)
反转 vector 中的元素顺序
可以使用 std::reverse
函数来反转 vector
中的元素顺序:
cppstd::reverse(v.begin(), v.end());
在 vector 的开头或结尾添加元素
除了使用 push_back()
函数在 vector
的末尾添加元素,还可以使用 insert()
函数在开头或结尾添加元素:
cpp// 在 vector 的开头添加元素
v.insert(v.begin(), 10);
// 在 vector 的结尾添加元素
v.insert(v.end(), 20);
清空 vector 中的元素
可以使用 clear()
函数来清空 vector
中的所有元素:
cppv.clear();
使用 erase-remove idiom 删除符合条件的元素
可以使用 erase()
函数和 remove()
函数组合起来删除符合条件的元素:
cpp// 删除所有值为 1 的元素
v.erase(std::remove(v.begin(), v.end(), 1), v.end());
使用 resize() 函数改变 vector 的大小
可以使用 resize()
函数来改变 vector
的大小,可以调整为更大的大小或更小的大小:
cpp// 将 vector 的大小调整为 5
v.resize(5);
关于vector
的更多用法,可以参考以下内容:
- 自定义比较函数。
- 使用
rbegin()
和rend()
指针逆序排序。 - 使用迭代器。
- 删除。可以使用
pop_back()
函数删除向量中的最后一个元素。