学习
实践
活动
工具
TVP
写文章

C+数组与容器

数组在编程的过程中给予了我们极大的帮助。首先,它使得我们可以使用循环等结构把一串几乎需要耗费大量心力的对象使其有序的、甚至简单的以一两句话做出相同的处理方案。例如:

1#include

2usingnamespacestd;

3voidmain(){

4inta[10]={90,91,92,93,94,95,96,97,98,99};

5for(inti=;i

6{

7cout

8}

9return;

10}

而如果我们不使用数组的方法而是一个一个输出,那么最后的结果会是把输出语句写上n遍,对于一个大型项目而言明显是不可取且低级的。所以说,在最初引入数组的时候,给予了编程的极大便利。

然而我们知道数组的使用比较麻烦。首先是大小没有管理,二是越界操作没有检查。

如此无法确保数组除以数组元素确定数组元素个数是否会出现越界,毕竟有太多的意外情况,需要程序员去处理。

C++11引入了数组容器这一概念,既在容器里面开辟出一块给数组使用,其中将数组的功能以及常用的方法封装起来,使得数组容器在使用的过程中更加安全可靠。

1Arrayarr={};

2unsignedinti=;

3while(i

4arr.at(i)=i;

5i++;

6}

在array中直接将数组的元素个数封装到size()函数中,且at()函数有助于检查是否越界。

除此之外,我们还知道,数组还有一种特点是让我们编程中很不爽却又无可奈何的特点,就是下标中的数字必须是常量,而且无法改变。

我们常常遇到这种情况,就是明明我们需要一个容器去存储一串对象,但我们就是不清楚这个到底有多少个对象。往往我我们第一时间想起数组,却发现数组无从下手。

现在,我可以告诉你另一个和数组很像却又彻底甩数组十条街的功能强大的容器,它的名字叫vector。是不是很像一把枪?它的效率也确实高,例如当我们不知道我们到底需要多少空间的时候,那么就让这个容器空间自增1,去装我现在新产生的对象啦!

1#include

2#include

3usingnamespacestd;

4voidmain(){

5vectorvec;//默认初始化,vec内不包含任何元素;

6for(inti=;i

7{

8intsum=

9for(intj=1,j

10{

11sum=sum+j;

12}

13vec.push_back(sum);//vector的成员是每个下标+1的数从1开始的累加和。

14}

15for(vector::iteratorit=vec.begin();it!=vec.end();it++)//it是迭

16//代器,用于遍历容器

17{

18Cout

19}

20Cout

21}

觉得本文对你有帮助?请分享给更多人

关注「阿T同学」

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181213G1BXZC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券