C++ vector基础教程:插入与遍历
需积分: 9 166 浏览量
更新于2025-01-05
收藏 5KB TXT 举报
"C++ vector 的简单用法及二维数组操作示例"
在 C++ 中,`std::vector` 是一个非常重要的容器,它允许我们动态地存储和管理元素序列。`vector` 类似于传统的数组,但具有动态扩展的能力,这使得它在处理不确定大小的数据集时特别有用。以下是对 `vector` 的简单用法和二维数组操作的讲解。
1. **基本使用**
- `vector` 的创建:`vector<int> v;` 创建一个空的整数型 `vector`。
- 插入元素:`v.push_back(i);` 向 `vector` 尾部添加元素,这里将整数 `i` 添加到 `v` 中。
- 遍历元素:可以使用 `for` 循环和索引来遍历 `vector`,如 `for (int i = 0; i < v.size(); i++)`,或者使用迭代器 `vector<int>::iterator iter; for (iter = v.begin(); iter != v.end(); iter++)`。
- 访问元素:`v[i]` 可以访问 `vector` 中的第 `i` 个元素,`v.size()` 返回 `vector` 中的元素数量。
2. **二维 `vector` 的创建与操作**
- 初始化:`vector<vector<int>> Array(10, vector<int>(0));` 创建一个大小为 10 的二维 `vector`,每个子 `vector` 初始为空。
- 填充数据:使用嵌套循环将数据填充到二维 `vector` 中,如 `Array[j].push_back(i);`。
- 遍历二维 `vector`:外层循环遍历行,内层循环遍历列,打印数据。
3. **多维 `vector` 的动态分配**
- 动态分配:在不知道子 `vector` 大小的情况下,可以先分配行,然后在每一行中逐个插入元素,例如 `Array.push_back(line);` 先添加一行空的 `vector`,然后再向这一行中添加元素。
- 动态扩展:如果需要在运行时动态扩展 `vector` 的大小,可以使用 `resize()` 函数,如 `Array[j].resize(new_size);`。
4. **注意事项**
- 在使用 `vector` 时,确保不进行越界访问,即检查索引是否小于 `vector` 的大小。
- 当 `vector` 容量不足时,`push_back()` 会自动扩容,可能导致性能开销。可以通过预分配容量来减少这种开销,如 `v.reserve(n)`。
- 使用迭代器时要注意,当 `vector` 的大小发生变化(如插入或删除元素)时,迭代器可能失效。
掌握 `vector` 的基本操作是 C++ 编程中的一项重要技能,它在实际编程中有着广泛的应用,比如数据存储、动态数组、函数返回值等。对于初学者来说,理解并熟练运用 `vector` 可以提高代码的灵活性和效率。
789 浏览量
159 浏览量
138 浏览量
219 浏览量
553 浏览量
122 浏览量
140 浏览量
370 浏览量
rwm5366745
- 粉丝: 27
- 资源: 34
最新资源
- 电子功用-方形电池侧焊夹具
- 基于NB-IoT的温室大棚环境监测系统 农业大棚监测控制系统 智慧农业(使用STM32开发板,仅电子资料)
- 禅道项目管理软件ZenTaoPMS v12.5.1
- 机器学习中的公平性【卡内基梅隆大学-CMU】.zip
- jQuery-Slider:完成了自定义jQuery滑块的集成,以集成到Omni-Update的TTUISD的OU校园CMS中
- 云
- Windows Communication Foundation 和 Builder NE 类型安全 API:“MATLAB 艺术”帖子的代码 - 如何使用 Builder NE 构建 Web 服务。-matlab开发
- اصالت سنج نماد اعتماد الکترونیکی-crx插件
- IPA-Ablage:IPA Dies ist eine weitere Ablagefürdie Dokumente von meiner
- 购买电视剧版权合约书
- keil MDK仿Vscode主题配色
- 毕业设计选题系统
- jetbrains-academy:JetBrains学院解决方案
- roms:光盘
- HSP
- ECG_Viewer:Matlab GUI,用于检查,处理和注释心电图(ECG)数据文件