C++ vector
容器简介
vector
是 C++ 标准库中的一个序列容器,它封装了动态大小数组的实现。vector
可以存储任意类型的元素,并且能够根据需要动态地调整大小。它支持在序列的末尾高效地添加或删除元素。
包含头文件
在使用 vector
之前,需要包含头文件 <vector>
。
#include <vector>
创建 vector
创建 vector
的基本语法如下:
std::vector<元素类型> 变量名;
或者在创建时初始化:
std::vector<int> vec = {1, 2, 3, 4, 5};
访问元素
可以通过下标操作符 []
访问 vector
中的元素:
int value = vec[2]; // 访问第三个元素
或者使用 at()
方法,它在访问越界时会抛出异常:
int value = vec.at(2); // 访问第三个元素
添加元素
可以使用 push_back()
方法在 vector
的末尾添加元素:
vec.push_back(6);
也可以使用 emplace_back()
方法,它直接在容器中构造元素:
vec.emplace_back(7); // 使用初始化列表构造
删除元素
可以使用 pop_back()
方法删除 vector
最后一个元素:
vec.pop_back();
或者使用 erase()
方法删除指定位置的元素:
vec.erase(vec.begin() + 2); // 删除第三个元素
遍历 vector
可以使用迭代器遍历 vector
:
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
或者使用范围基的 for 循环(C++11 引入):
for (int val : vec) {
std::cout << val << " ";
}
容量和大小
size()
方法返回vector
中元素的数量。capacity()
方法返回vector
能够容纳的元素数量而无需重新分配内存。
std::cout << "Size: " << vec.size() << ", Capacity: " << vec.capacity() << std::endl;
清空 vector
可以使用 clear()
方法清空 vector
:
vec.clear();
其他常用方法
resize()
:改变vector
的大小。empty()
:检查vector
是否为空。front()
和back()
:分别访问第一个和最后一个元素。
示例代码
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 添加元素
vec.push_back(6);
vec.emplace_back(7);
// 删除元素
vec.pop_back();
vec.erase(vec.begin() + 1);
// 遍历
for (int val : vec) {
std::cout << val << " ";
}
std::cout << std::endl;
// 容量和大小
std::cout << "Size: " << vec.size() << ", Capacity: " << vec.capacity() << std::endl;
return 0;
}
这个示例展示了 vector
的一些基本操作,包括创建、添加、删除元素,以及遍历和获取容量和大小。vector
是 C++ 中非常强大和灵活的容器,适用于需要动态数组的场景。