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

C++的序列容器——数组

前言:

这篇文章我们就开始新的章节,我们之前说的C/C++的缺陷那部分内容就结束了。在开始新的章之前我希望大家可以先对着题目思考一下,C++的容器是什么?有什么作用?下面让我们开始新的内容:


目录

前言:

序列容器——数组

概念:

数组声明:

使用注意事项:

优点:

实例:

现在引入我们的C++对于数组下标的规则定义:

如此设计的好处:

下期预告:数组的基本功能和二维数组;


序列容器——数组

概念:

代表内存里一组连续的同类型存储区。

可以用来把多个存储区合并成一个整体。(原本分散互不联系的单元内存,因为数组的定义而组合在一起,成为一个整体,多个存储区可以为同一类型的内容存储)

比如:  int  a[10]={1,2,3,4,5,6,7,8};

数组声明:
  1. int a[10];
  2. 类型名称int表示数组里所有元素的类型。(int型的数组就表示数组里存储的都是int型元素)
  3. 类型名称a是数组的名称。(数组名,代表整个数组的名字)
  4. 整数10表示数组里包含元素个数。(可以填满10个,也可以填不满10个,但是不能超过10个)
  5. 数组里元素个数不可以改变。(一旦定义前就把数组的大小确定后,后期基本无法改变)
使用注意事项:
  1. 每个元素都有下标,通过下标就可以直接访问任意一个元素;(相当于名字)
  2. 下标从零开始到元素个数减一为止;(所有的数据都是从0开始数,其他的一样)
  3. 超过范围的下标不可用;(未被定义过,贸然使用会出现bug)
  4. 数组名称和下标一起可以表示数组里的元素(还是相当于被存储的元素在数组中的名字)

       模型图                                                                                                                                                            

优点:
  1. 可以编写循环依次处理数组里的所有元素。
  2. 循环变量依次代表所有的有效下标。(利用循环的数字递加可以表示下标的递增)
实例:
include<iostream>
using namespace std;
int main()
{
int a[8]={1,2,3,4,5,6,7,8};
for(int s=0;s<9;s++)
{
cout<<a[s]<<endl;
}
return 0;
}

下标标识了一个数组元素在当前数组中的位置。


好的,我们现在思考一个问题:一段路90米,每个10米种一棵树,总共需要多少棵树?

答案是10

off by one error(少一错误)

我再举个例子:假定整数x满足边界条件x>=16并且x<=37那么此范围内有几个数?

答案是22

我们来简单分析一下,就是当x的两个边界重合时,即当x>=6&&x<=27时,那么结果就是1;

接着我们再用27-6得到21再加上1,结果就是22。千万别忘了加一。

现在引入我们的C++对于数组下标的规则定义:

首先这个区间是一个非对称的区间。(比如是x>=6,x<=27这就是非对称,一半是大于等于,一半是大于)

让上界取不到值,下界取得到值;

数组边界

如此设计的好处:
  1. 取值范围的大小:上界-下界
  2. 如果这个取值范围为空:上界值等于下界值;
  3. 即使取值范围为空,上界值永远都不可能小于下界值;

🆗到这里,这篇关于C++的序列容器——数组就说完了,求一个免费的赞,感谢阅读,我们下期见。

下期预告:数组的基本功能和二维数组;

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

相关文章:

  • TCC 和 XA 协议之间的区别?
  • 萌啦数据插件使用情况分析,萌啦数据插件下载
  • C++初学(13)
  • 目标检测之数据增强
  • 本地下载安装WampServer结合内网穿透配置公网地址远程访问详细教程
  • 一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)
  • 【数学分析笔记】第2章第1节实数系的连续性(1)
  • Speech Synthesis (LASC11062)
  • 拟合与插值|线性最小二乘拟合|非线性最小二乘拟合|一维插值|二维插值
  • 《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类
  • 使用Virtio Driver实现一个计算阶乘的小程序——QEMU平台
  • 【PyCharm】配置“清华镜像”地址
  • IO器件性能评估
  • 在js中判断对象是空对象的几种方法
  • 【整理】后端接口设计和优化相关思路汇总
  • docker 部署 sql server
  • 微信云开发云存储 下载全部文件
  • 1、巡线功能实现(7路数字循迹)
  • 来了...腾讯内推的软件测试面试PDF 文档(共107页)
  • Android大脑--systemserver进程
  • python项目部署:Nginx和UWSGI认识
  • 【区块链+金融服务】农业大宗供应链线上融资平台 | FISCO BCOS应用案例
  • 2025ICASSP Author Guidelines
  • Openstack 所需要的共享服务组件及核心组件
  • 解密Linux中的通用块层:加速存储系统,提升系统性能
  • 浅析国有商业银行人力资源数字化平台建设
  • 微信h5跳转消息页关注公众号,关注按钮闪一下消失
  • 掌握PyTorch的加权随机采样:WeightedRandomSampler全解析
  • 网络丢包深度解析:影响、原因及优化策略
  • Hadoop入门基础(一):深入探索Hadoop内部处理流程与核心三剑客