资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

STL之常用容器——动态数组vector(详细解析)整理-创新互联

前言

谢谢大家的支持,此篇博文我后续还会考虑继续更新的,还希望日后大家多多支持!在此,谢谢各位!希望我的这篇博文能带给大家一些帮助!

成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元鲤城做网站,已为上家服务,为鲤城各地企业和个人服务,联系电话:13518219792STL之动态数组——vector
  • 前言
  • 一、标准模板库
  • 二、STL之向量——vector
  • 三、vector 的优缺点
    • 优点
    • 缺点
  • 四、vector 的声明和初始化
  • 五、vector 的常用函数
  • 六、vector 的访问
  • 七、配合迭代器使用的函数

一、标准模板库

标准模板库(Standard Template Library,STL)是HP公司开发的一个C++模板库,包含一些常用的数据结构和算法。

具有以下的组件:

1.容器:容纳包含一组元素的对象;
2.迭代器:提供访问容器的方法;
3.函数对象;
4.算法。

二、STL之向量——vector

1.vector 是 c++标准库 提供的一个变长数组类型,属于容器,它可以像数组一样进行数据的存储和访问。
2. vector 会根据需要自动扩展其自身的容量来容纳更多的数据。
3. vector 的内部存储结构和数组一样,使用的是一段连续的存储空间。
4. 头文件 #include< vector >

三、vector 的优缺点 优点

(1)进行插入删除操作后会动态连接;
(2)有很多函数可以调用;
(3)动态分配内存,节省空间。

缺点

(1)需要记忆函数较多;
(2)Vector变量动态改变时,各参数值可能需要重新获取;
(3)Vector数组的数组名不是数组的地址,部分函数需要使用迭代器访问容器。

四、vector 的声明和初始化

(1) vector<数据类型>a,b,c,d; //空的动态数组
(2) vector<数据类型>a(10); //定义一个长度为10,下标从0~9的动态数组,数组会默认初始化为0
(3) vector<数据类型>a(10,1); //定义一个长度为10,下标从0~9的动态数组,数组初始化为1
(4) vector<数据类型>a(b); //用动态数组b来创建动态数组a,整体复制性赋值
(5) vector<数据类型>().swap(a); //清空a,并释放空间; (惯用法)。

五、vector 的常用函数

(1) a.size() 返回数组长度
(2) a.resize(n) 重设数组的大小
(3) a.clear() 清空数组所有元素
(4) a.empty() 判断数组是否为空,是返回1,否返回0
(5) a.swap(b) 交换a和b两容器的值
(6) a.push_back(x) 在动态数组a尾部添加元素x
(7) a.pop_back() 删除数组尾部元素

六、vector 的访问

访问 vector 中的元素一般有两种方式。
1 . 第一种是通过“下标”访问。
例如,对于容器 vector v,可以使用 v[index]来访问它的第 index 个元素。其中,0≤index≤v.size()-1,v.size()表示 vector 中元素的个数。
2.第二种方式是通过“迭代器”访问。
迭代器类似于指针,指向vector中元素的位置,可以使用迭代器来访问vector中的元素。
迭代器的声明和初始化
vector<数据类型>::iterator t1,t2; //创建t1,t2两个迭代器
t1=a.begin(); t1指向数组a的开始位置
t2=a.end()-1; t2指向数组a结束位置
在这里插入图片描述

a.begin() 指向数组a的开始位置
a.end() 指向数组a的结束位置的下一个位置
例如:
vector::iterator it= a.begin();
for(int i = 0; i<= 5; i++) printf("%d ",*(it + i));

七、配合迭代器使用的函数

(1) a.insert(t1,2) //在数组下标为t1的位置插入一个元素2,其他元素向后移一位
(2) a.erase(t1) //删除第t1个位置的元素,其他元素向前移动一位
(3) a.erase(t1,t2+1) //删除t1~t2区间内的元素,其余元素向前移动
(4) reverse(t1,t2+1) //反转t1~t2区间内的元素
(5) sort(t1,t2+1) //对数组元素从小到大排序


你的点赞加收藏将是我大的动力哦!
如有问题或指点欢迎评论,关注加私聊!
谢谢大佬们的观看!拜拜!


你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:STL之常用容器——动态数组vector(详细解析)整理-创新互联
当前链接:http://cdkjz.cn/article/cdsdds.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220