C++ Vector完全指南:从入门到精通

Vector是C++标准模板库(STL)中最常用且强大的容器之一,本文将带你全面了解它的特性和使用方法。

🚀 Vector基础介绍

Vector是一个动态数组,可以在运行时自动调整大小,无需手动管理内存。与普通数组相比,它提供了更多便捷的操作方法

Cpp

#include <vector> // 必须包含的头文件 using namespace std; vector<int> v; // 创建一个int类型的空vector

📌 Vector的初始化方式

Vector有多种初始化方式,满足不同场景需求:

  1. 指定大小初始化
Cpp

vector<int> v1(10); // 10个元素,默认值为0 vector<int> v2(10, 5); // 10个元素,值都为5
  1. 列表初始化
Cpp

vector<int> v3 = {1, 2, 3, 4, 5};
  1. 拷贝初始化
Cpp

vector<int> v4(v3); // 拷贝v3的所有元素 vector<int> v5 = v3; // 同上
  1. 使用指针/迭代器初始化
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()

⚡ 性能提示

  1. Vector的内存是在堆上分配的,vector对象本身(控制结构)通常在栈上
  2. 使用reserve()预分配空间可以避免频繁重新分配内存
  3. emplace_back()push_back()更高效,避免不必要的拷贝

📚 进阶学习资源

  1. C++必知必会vector解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值