当前位置:网站首页>STL-vector容器
STL-vector容器
2022-08-03 06:34:00 【干饭小白】
vector容器简介
vector是将元素置于一个动态数组中加以管理的容器
vector可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法) at会抛出异常
vector尾部添加或删除元素非常快。但是在中部或者头部插入元素或移除元素比较费时
vector对象的默认构造
vector<T>vecT; //采用模板类实现,vector对象的默认构造形式
举例:
vector<int> vecint; //一个存放int的容器
vector<float> vecFloat; //一个存放float的vector容器
vector<string> vecString; //一个存放string的vector容器
对于类(自定义数据类型)://注意深拷贝和浅拷贝的问题
Class A{};
vector<A*>pvecA; //用于存放A对象的指针vector容器
vector<A> vecA; //用于存放A对象的vector容器
容器元素的存放是按值复制的方式进行的,所以此时A必须提供A的拷贝构造函数,以保证A对象间拷贝正常。
vector对象的带参构造
vector(begin,end); //左闭右关[begin,end)
vector(n,elem); //构造函数将 n 个 elem拷贝给本身
vector(const vector &vec); //拷贝构造函数
vector的赋值
vector.assign(beg,end); //将[beg,end)区间中的数据拷贝赋值给本身
vector assign(n,elem); //将n个elem拷贝赋值给本身
vector& operator=(const vector &vec); //重载等号操作符
vector.swap(vec); //将vec与本身的元素互换
vector的大小
理论知识
vector.size(); //返回容器中元素的个数
vector.empty(); //判断容器是否为空
vector.resize(num); //重新指定容器的长度为num,
若容器变长则以默认值(0)填充新位置,
如果变短则删除末尾部分
vector.resize(num,elem); //重新指定容器的长度为num,
若容器变长,则以elem值填充新位置
如果变短则删除末尾部分
vector末尾的添加移除操作
vector.push_back(elem);
vector.pop_back(elem);
vector的数据存取
vec.at(index); //返回索引 index 所指向的数据,如果idx越界,抛出out_of_range异常
vec[index]; //返回索引 index 所指向的数据,越界时,直接报错
vector的插入
vector.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置
vector.insert(pos,n,elem); //在pos位置插入n个elem数据
vector.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据
vector的删除
//移除容器的所有数据
vector.clear();
//删除[beg,end)区间的数据,返回下一个数据的位置(需要注意迭代器失效问题)
vector.erase(beg,end);
//删除pos位置的数据,返回下一个数据的位置(需要注意迭代器失效问题)
vector.erase(pos);
边栏推荐
猜你喜欢
Nacos单机模式的安装与启动
分布式数据库数据一致性的原理、与技术实现方案
第一章:ARM公司Cortex-M 系列处理器介绍,第二章:嵌入式软件开发介绍和第三章:Cortex-M3和Cortex-M4处理器的一般介绍
【第1天】SQL快速入门-基础查询(SQL 小虚竹)
MySQL忘记密码怎么办
贷中存量客户的价值挖掘与分类实现,试试这一重要的场景模型
《多线程案例》阻塞队列、定时器、线程池、饿汉与懒汉模式
el-table gets the data attribute of a row in the read data table
RHCSA第四天
一文搞懂什么是@Component和@Bean注解以及如何使用
随机推荐
现货黄金分析的主要流派
pgaudit 的安装使用《postgresql》
信息学奥赛一本通T1454:山峰和山谷
【图像边缘检测】基于matlab灰度图像的积累加权边缘检测【含Matlab源码 2010期】
word之图表目录中点号位置提升3磅
10 分钟彻底理解 Redis 的持久化和主从复制
CISP-PTE Zhenti Demonstration
JS作用对象API技巧
pt-online-schema-change工具使用的一次
mysql or语句的优化
Detailed explanation of AutoInt network and pytorch reproduction
postman将接口返回结果生成csv文件到本地
[机缘参悟-59]:《素书》-6-安于礼仪[安礼章第六]
idea远程debug
IFM network detailed explanation and torch reproduction
【第1天】SQL快速入门-基础查询(SQL 小虚竹)
信息学奥赛一本通T1446:素数方阵
【OpenCV】 - 显示图像API之imshow()对不同位深度(数据类型)的图像的处理方法
(十五)51单片机——呼吸灯与直流电机调速(PWM)
RHCSA第四天