当前位置: 首页 > news >正文

C++——如何正确的使用STL中的vector?

什么是vector?

在STL(标准模板库)中,vector是一种动态数组容器,可根据需要自动增长或缩小。它可以存储任意类型的元素,并且支持快速的随机访问。

  1. vector是表示可变大小数组的序列容器
  2. vector采用的是连续的存储空间来存储元素,类似于数组,但是它的大小是可以被容器自动的动态改变
  3. vector使用动态分配数组来存储它的元素
  4. vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大
  5. 与其它动态序列容器相比,vector在访问元素的时候效率更高,在末尾添加和删除元素更加高效

vector如何使用

构造函数的使用

构造函数声明接口说明
vector无参构造
vector(size_type n,const value_type& val=value_type())构造并初始化n个val
vector(const vector& x)拷贝构造
vector(InputIterator first,InputIterator last);使用迭代器进行初始化构造

iterator的使用

iterator的使用接口说明
begin+end获取第一个数据位置的iterator/const_iterator,获取最后一个数据的下一个位置的iterator/const_iterator
rbegin+rend获取最后一个数据位置的reverse_iterator,获取第一个数据前一个位置的reverse_iterator

在这里插入图片描述
在这里插入图片描述

空间增长问题

空间容量接口说明
size获取数据个数
capacity获取容量大小
empty判断是否为空
resize改变vector的size
reserve改变vector的capacity

增删查改

vector增删查改接口说明
push_back尾部插入一个数据
pop_back尾部删除一个数据
find查找
insert在position之前插入val
erase删除position位置的数据
swap交换两个vector的数据空间
operator[]像数据一样访问

结构图

capacity()——表示空间的存储容量
size()——表示空间的大小
start——表示指向数据块的起始位置
finish——表示指向有效数据的尾部
end_of_storage——表示指向存储空间的尾部

在这里插入图片描述

http://www.lryc.cn/news/173979.html

相关文章:

  • 【C语言】模拟实现内存函数
  • Jenkins学习笔记3
  • 基于单片机火灾报警器仿真设计
  • 阿里测开面试大全(一)附答案完整版
  • STL-常用容器
  • 【owt】关闭microk8s 等无关服务
  • 【面试题】——Spring
  • 【算法思想-排序】根据另一个数组次序排序 - 力扣 1122 题
  • 毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计
  • 编译原生安卓aosp源码,实现硬改以及定位
  • 找单身狗。一个数组中只有两个数字出现一次,其他数字出现了两次,编写一个函数找出这两个只出现一次的数字
  • Java数据结构技巧
  • easyui disabled 属性设置
  • 使用容器运行Nginx应用及Docker命令
  • fastapi 基本介绍+使用
  • C语言的结构体的认识
  • 只通过在vimrc文件写东西来实现或安装vim的插件
  • 云原生Kubernetes:K8S存储卷
  • “五育”并举育人体系构建的实践研究课题实施方案
  • 小样本目标检测:ECEA: Extensible Co-Existing Attention for Few-Shot Object Detection
  • Android 10.0 系统开启和关闭黑白模式主题功能实现
  • Linux-VI和VIM
  • 【送书】实现可观测性平台的技术要点是什么?
  • AUTOSAR汽车电子嵌入式编程精讲300篇-车载网络 CAN 总线报文异常检测
  • 基于MUSIC算法的二维超声波成像matlab仿真
  • Linux0.11——第三回 做好访问内存的最基础准备工作
  • unity自己对象池的使用
  • el-image 和 el-table冲突层级冲突问题
  • 6年Android开发前10月的总结,写给正在求职的安卓开发
  • ConcurrentHashMap 的并发度是什么?