Vector是C++标准模板库(STL)中最常用且强大的容器之一,本文将带你全面了解它的特性和使用方法。
🚀 Vector基础介绍
Vector是一个动态数组,可以在运行时自动调整大小,无需手动管理内存。与普通数组相比,它提供了更多便捷的操作方法
Cpp
#include <vector> // 必须包含的头文件 using namespace std; vector<int> v; // 创建一个int类型的空vector
📌 Vector的初始化方式
Vector有多种初始化方式,满足不同场景需求:
- 指定大小初始化
Cpp
vector<int> v1(10); // 10个元素,默认值为0 vector<int> v2(10, 5); // 10个元素,值都为5
- 列表初始化
Cpp
vector<int> v3 = {1, 2, 3, 4, 5};
- 拷贝初始化
Cpp
vector<int> v4(v3); // 拷贝v3的所有元素 vector<int> v5 = v3; // 同上
- 使用指针/迭代器初始化
Cpp
int arr[] = {1, 2, 3}; vector<int> v6(arr, arr+3); // 使用数组指针初始化
💡 Vector常用操作
1. 访问元素
Cpp
v[0] = 10; // 通过下标访问(不检查越界) v.at(0) = 20; // 通过at访问(会检查越界) int first = v.front(); // 第一个元素 int last = v.back(); // 最后一个元素
2. 添加/删除元素
Cpp
v.push_back(10); // 在末尾添加元素 v.pop_back(); // 删除末尾元素 v.insert(v.begin()+1, 20); // 在指定位置插入 v.erase(v.begin()); // 删除指定位置元素 v.clear(); // 清空所有元素
3. 容量查询
Cpp
int size = v.size(); // 当前元素数量 bool empty = v.empty(); // 是否为空 int cap = v.capacity(); // 当前容量
完整操作列表参考:Microsoft官方vector文档
🌟 二维Vector
Vector可以嵌套使用创建多维数组:
Cpp
// 初始化5x5的二维vector,默认值0 vector<vector<int>> matrix(5, vector<int>(5)); // 初始化3x4的二维vector,默认值-1 vector<vector<int>> matrix2(3, vector<int>(4, -1));
二维vector详细教程:详解C++的vector
🔄 Vector迭代器
迭代器提供了遍历vector的标准方式:
Cpp
// 正向遍历 for(auto it = v.begin(); it != v.end(); it++) { cout << *it << " "; } // 反向遍历(C++11起) for(auto it = v.rbegin(); it != v.rend(); it++) { cout << *it << " "; } // 常量反向迭代器(C++14起) for(auto it = v.crbegin(); it != v.crend(); it++) { cout << *it << " "; }
迭代器详解:C++ vector库crbegin()
⚡ 性能提示
- Vector的内存是在堆上分配的,vector对象本身(控制结构)通常在栈上
- 使用
reserve()
预分配空间可以避免频繁重新分配内存 emplace_back()
比push_back()
更高效,避免不必要的拷贝