后台开发:核心技术与应用实践3.3.1 vector是什么
2023-03-09 22:20:35 时间
3.3.1 vector是什么
vector是线性容器,它的元素严格按照线性序列排序,和动态数组很相似。和数组类似的是,它的元素存储在一块连续的存储空间中,这也意味着不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问。和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间。
vector的优点如下所述。
(1)可以使用下标访问个别的元素。
(2)迭代器可以按照不同的方式遍历容器。
(3)可以在容器的末尾增加或删除元素。
和数组相比,虽然容器在自动处理容量的大小时会消耗更多的内存,但是容器能提供和数组一样的性能,而且能很好地调整存储空间大小。
和其他标准的顺序容器相比,vector能更有效访问容器内的元素和在末尾添加和删除元素;而在其他位置添加和删除元素,vector则不及其他顺序容器,在迭代器和引用也不比lists支持的好。
容器的大小和容器的容量是有区别的,大小是指元素的个数,容量是分配的内存大小,容量一般不小于容器的大小。vector::size()返回容器的大小,vector::capacity()返回容量值,容量多于容器大小的部分用于以防容器大小的增加使用。每次重新分配内存都会很影响程序的性能,所以一般分配的容量都大于容器的大小,若要自己指定分配的容量的大小,则可以使用vector::reserve(),但是规定的值要大于size()值。
使用vector时需要包含的头文件#include<vector>。
相关文章
- OpenHarmony应用Hap包签名
- Windows 11 2022首次大更新解读:四大创新、安卓App终于来
- 微软 Windows 11 安卓子系统 WSA 应用登陆 31 个国家和地区
- JDBC的典型应用—桥接模式
- 可以跑安卓App了!Windows 11 2022首次大更新发布 一键下载
- 设计模式之工厂模式—要的是工厂而不是作坊
- 如何在 Android 上优雅的进行 HTTPS 明文抓包
- 如何在 Android 设备上运行 Linux
- 如何在 Ubuntu 桌面中应用强调色
- 如何在 Linux Mint 中创建和切换工作区
- 微软 Windows 11 安卓子系统 WSA 八月更新内容公布:修复 App 重启问题,禁用烦人通知
- 回调函数在命令解析中的应用
- Android内卡挂载之FUSE文件系统
- ObjectMapper,别再像个傻子一样一直New了!
- 微软 Windows 11 Dev 预览版 25182 发布:相机适配 Arm64 支持全新隐私,商店 App 直接安装游戏
- 如何在 Windows 11 上将 Android 手机用作网络摄像头
- 别着急升!劝大家等等iOS 16正式版:原因有四点
- 兼顾敏捷交付和系统稳定运行,大型银行平台化落地实践
- 手把手教你进行JS逆向并去除App开屏广告
- 微前端究竟是什么?微前端核心技术揭秘!