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

全网营销的四大优势/百度官方优化软件

全网营销的四大优势,百度官方优化软件,免费搭建个人服务器,申请个人主页网站学过C的同学都知道,数组是个好东西。数组是具有一定顺序关系的若干对象的集合体,当我们想到存储和处理大量同类型数据时——既然二位女神用了都说好,那我们也要给自己安排一下???安排完了看看下边的几段代码,是不是你的日常&am…
bd5cf25e065242d0d861739afe20616a.pnge2f01e220ce98253c6cef61c0dd509ce.gif

学过C++的同学都知道,数组是个好东西。数组是具有一定顺序关系的若干对象的集合体,当我们想到存储和处理大量同类型数据时——

33bf5143e7f7bb543b197605ab3c9bf0.png

既然二位女神用了都说好,那我们也要给自己安排一下???

安排完了看看下边的几段代码,是不是你的日常:

2931f1940a5226a32c90be19d3b92f5a.png

俗话说得好,写Bug 3分钟,Debug 3小时,出现这些蜜汁Bug,真是让我们这些新手小白摸不着头脑。

说到底,出现这些Bug还是因为定义数组时,必须指定它的大小。一旦数组的大小被确定,就不能随意向数组中增加元素。因此,特别容易出现下标越界的问题。除此以外,我们也不能将数组的内容拷贝给其他数组作为初始值或者为其他数组赋值。

为了克服数组的这些弊端,C++标准库提供了被封装的动态数组——vector。Vector可以存放任意类型的数据,容量可以自动扩展,堪称pro版数组!接下来,就让我们一起来了解vector类型该如何使用吧!

加入头文件

Step 0

f0f24275c0506d5b11a3c15be7a49b67.png

构造

Step 1

Vector是一个类模板,类模板在定义类时将一些类型信息抽取出来,用模板参数来替换,从而使类更具通用性。

f42357e72dda782a2f23f34265f80de5.png

用vector定义动态数组的形式为:

vector数组对象名(数组长度)

我们以int类型为例,看一些构造vector的例子。

7feb2748cac8eb8dc7cdfae48f8c3dd6.png

增加和删除元素

Step 2

Vector最基本的内存模型是栈结构,后进先出,可以用下面的手绘图直观表示⬇️

365730c171d5102d50ced4dd16f11745.pnga2064da7f2f8b200a58c7512015d0914.png365730c171d5102d50ced4dd16f11745.png

具体代码实现如下。

8319d378fc7434cae2837cc5d0bd7490.png

获取vector的长度

Step 3

经过一系列的pop和push操作之后,vector现在到底处于什么样的状态呢?我们可以调用size()函数获取向量中元素的函数,调用empty()函数检查向量是否为空。

0a82e7b13cf6718c99b2482b4e74d5a9.png

通过下标访问某一个元素

Step 4

对于向量c,我们可以用c.at(index)的方式访问它的元素,index为元素的下标。

d53ff3ce0c87536d1e5902ddece5a064.png

使用迭代器

Step 5

f42357e72dda782a2f23f34265f80de5.png

迭代器(iterator)是一种用于遍历容器内全部元素的数据类型,它的定义方式如下:

vector::iterator iter

(定义一个T类型vector的迭代器)

直白点说,迭代器就是一个封装版的“聪明”的指针。关于迭代器的使用,让我们一起来看几个例子吧。

cb34b6006f998e6f03dbbd0fb25a52a5.png

我们还可以使用迭代器在特定位置插入和删除元素。这两种操作分别对应insert和erase函数,具体用法如下。

dd3e84dd1596e06daaae1d03da520b78.png

清除所有数据

Step 6

对于向量c,只要调用c.clear()就可以清除c中的所有数据啦~

35c1446f59edd3f50e4913ab5a054002.png35c1446f59edd3f50e4913ab5a054002.png35c1446f59edd3f50e4913ab5a054002.png

怎么样,看完这么多介绍,你是不是觉得vector超级无敌好用?最后,我们再总结一下,相比数组,pro版本的数组vector到底在哪些地方做了改进。

  1. 大小能否变化

    vector属于变长容器,即可以根据数据的插入删除重新构建容器容量,但array和数组属于定长容量。

  2. 初始化

    数组不能将数组的内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值,而向量可以。

  3. vector提供了更好的数据访问机制,即可以使用及at访问方式,使得访问更加安全。而数组只能通过下标访问,在程序的设计过程中,更容易引发访问错误。

  4. vector提供了size和判空的获取机制,而数组只能通过遍历或者通过额外的变量记录数组的size。

  5. vector提供了可以动态插入和删除元素的机制,而array和数组则无法做到,或者说array和数组需要完成该功能则需要自己实现完成。

  6. 深度搜索:内存中的位置

    C++中数组为内置的数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成;vector,存放在堆中,由STL库中程序负责内存的分配和释放,使用方便。

       Pro版本哪里都好,唯一的缺点就是贵了点(颠扑不破的真理)。想要享受vector的便捷,需要昂贵的时间代价。Vector的执行效率远低于数组,主要原因是vector的扩容过程要消耗大量的时间。所以到底何时应使用vector,何时使用数组,还是应该具体问题具体分析

http://www.jmfq.cn/news/4780153.html

相关文章:

  • 家装公司排名前十/武汉网站seo公司
  • 自己建一个网站做电子商务/互联网营销工具有哪些
  • 新浪网页版/网站排名优化怎样做
  • 站长工具如何使用/百度收录量
  • 正规的网站制作/余姚网站seo运营
  • 外贸型网站制作/品牌整合营销传播
  • python教程/武汉网站营销seo方案
  • 网站备案条件/佛山全网营销推广
  • 网站打开403/简述优化搜索引擎的方法
  • 网页制作工具的选择与网站整体网络没有关系/武汉网站推广
  • 公司网站建设意见和建议/计算机编程培训学校哪家好
  • 四川建设工程网上合同备案网站/企业网页设计报价
  • 网站的整体风格/江苏搜索引擎优化公司
  • 赣州网站建设效果/腾讯新闻潍坊疫情
  • 建企业网站的步骤/十大接单平台
  • 重庆公司网站制作公司/会计培训班一般多少钱
  • 网站建设怎么谈/百度培训
  • 哪些行业需要做网站/云计算培训费用多少钱
  • 篇高端网站愿建设/网络推广优化网站
  • 深圳网站设计招聘信息/苏州百度推广服务中心
  • 请人做网站花多少钱/抖音关键词优化排名
  • 东莞怎样做网站建设/seo常用工具网站
  • 学校开发网站公司/单页面seo搜索引擎优化
  • 有关做美食的网站有哪些/全球网络营销公司排行榜
  • 网站运营策划/网站优化排名推荐
  • 邢台做网站哪里便宜/引流人脉推广软件
  • 如何做多语言网站/集客营销软件官方网站
  • 手工网站怎样做三角包/营销网站建设
  • 小型企业管理系统/seo顾问是什么职业
  • 刚做的网站为什么百度搜不到/十大技能培训机构排名