C++中vector容器的使用和操作
下载需积分: 24 | DOCX格式 | 24KB |
更新于2024-09-14
| 73 浏览量 | 举报
vector用法详解
vector是C++标准库中的一种容器类,相当于一个动态数组,可以存储不同的数据类型。它的使用非常灵活,提供了多种操作来管理和访问元素。
**定义和初始化**
vector的定义和初始化有多种方式:
1. 默认初始化:`vector<typeName>v1;`,默认情况下,v1为空。
2. 复制初始化:`vector<typeName>v2(v1);` 或 `v2 = v1;`,v2是v1的一个副本。
3. 指定大小和初始值的初始化:`vector<typeName>v3(n, i);`,v3包含n个值为i的typeName类型元素。
4. 使用数组初始化:`int a[4] = {0, 1, 2, 3, 3}; vector<int>v5(a, a + 5);`,v5的size为5,v5被初始化为a的5个值。
**值初始化**
vector的值初始化遵循以下规则:
1. 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。
2. 如果保存的式含有构造函数的类类型的元素,标准库使用该类型的构造函数初始化。
3. 如果保存的式没有构造函数的类类型的元素,标准库产生一个带初始值的对象,使用这个对象进行值初始化。
**vector对象的操作**
vector对象提供了多种操作来管理和访问元素:
1. `push_back`:在容器的最后添加一个值为t的数据,容器的size变大。
2. `size`:返回容器中数据的个数,size返回相应vector类定义的size_type的值。
3. `resize`:将v的容量翻倍(或将v的容量设置为指定的值),例如`v.resize(2 * v.size)`或`v.resize(2 * v.size, 99)`。
4. `empty`:判断vector是否为空。
**其他操作**
vector还提供了其他操作,例如:
* `at`:访问指定索引的元素,例如`v.at(0)`。
* `operator[]`:访问指定索引的元素,例如`v[0]`。
* `front`:访问容器的第一个元素,例如`v.front()`。
* `back`:访问容器的最后一个元素,例如`v.back()`。
* `begin`和`end`:访问容器的开始和结束迭代器,例如`v.begin()`和`v.end()`。
vector是一个功能强大且灵活的容器类,提供了多种操作来管理和访问元素。
相关推荐
![filetype](https://img-home.csdnimg.cn/images/20241231044833.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![filetype](https://img-home.csdnimg.cn/images/20241231045021.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044901.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![filetype](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/fe0cefc9f6d4494eab23612bdda4f6ac_gpc123456y.jpg!1)
gpc123456y
- 粉丝: 1
最新资源
- Linux下的SQLite v3.25.1数据库下载与特性解析
- 视频监控中的灰度化与载波型调制抑制技术
- React入门与Create React App的使用教程
- 栈的顺序存储机制及其应用分析
- 电子海图浏览器4.0全新升级版本
- Nodejs+express+mongodb打造DoraCMS内容管理系统
- 《bird-go-go-go》:挑战管道夹鸟起飞的HTML游戏
- MATLAB开发教程:PCA分析实战与代码解析
- 深入探索AI优化技术及其Python应用
- 探索DNAMAN软件在分子生物学分析中的应用
- 中国电信IT研发中心笔试题解析
- 提升Win10环境下Elasticsearch下载速度方法分享
- R语言ggplot2绘图包使用入门与项目实践
- apktool2.3.4:一站式Android应用逆向工程解决方案
- 系统建模与推理的逻辑学-计算机科学深度解析
- SQLite v3.25.1:嵌入式数据库的轻量级解决方案