当前位置: 首页 > 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++的序列容器——数组就说完了,求一个免费的赞,感谢阅读,我们下期见。

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

相关文章:

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

前言&#xff1a; 这篇文章我们就开始新的章节&#xff0c;我们之前说的C/C的缺陷那部分内容就结束了。在开始新的章之前我希望大家可以先对着题目思考一下&#xff0c;C的容器是什么&#xff1f;有什么作用&#xff1f;下面让我们开始新的内容&#xff1a; 目录 前言&#x…...

TCC 和 XA 协议之间的区别?

TCC&#xff08;Two-Phase Commit&#xff09;协议和XA协议都是用于分布式系统中确保事务原子性的协议。它们在实现分布式事务协调方面有一些相似之处&#xff0c;但也存在一些关键的不同点。 协议的协调者&#xff08;Coordinator&#xff09;角色&#xff1a; TCC协议&#x…...

萌啦数据插件使用情况分析,萌啦数据插件下载

在当今数字化时代&#xff0c;数据已成为企业决策与个人分析不可或缺的重要资源。随着数据分析工具的日益丰富&#xff0c;一款高效、易用的数据插件成为了众多用户的心头好。其中&#xff0c;“萌啦数据插件”凭借其独特的优势&#xff0c;在众多竞品中脱颖而出&#xff0c;成…...

C++初学(13)

13.1、for循环的组成部分 for循环的组成部分完成下面这些步骤&#xff1a; (1)设置初始值。 (2)执行测试&#xff0c;看看循环是否应当继续。 (3)执行循环操作。 (4)更新用于测试的值。 C循环设计中包含这要素&#xff0c;很容易识别&#xff0c;初始化、测试和更新操作工…...

目标检测之数据增强

一、概述 数据增强是一种通过人工或自动方式对数据进行修改或变换&#xff0c;以增加数据集规模和多样性的技术。在机器学习中&#xff0c;数据增强被广泛应用于解决数据稀缺、数据不平衡、数据噪声等问题&#xff0c;提高模型的泛化能力和鲁棒性。 二、为什么需要数据增强 …...

本地下载安装WampServer结合内网穿透配置公网地址远程访问详细教程

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…...

一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)

Java持久化 一、JDBC、JPA、Spring Data JPA 的定义及关系二、JDBC&#xff08;古老的东西&#xff0c;只需简单知道是啥&#xff09;1.1 JDBC概念1.2 JDBC示例 三、JPA&#xff08;第二代持久化&#xff0c;代表是Hibernate等框架&#xff09;3.1 JPA概念3.2 JPA示例 四、Spri…...

【数学分析笔记】第2章第1节实数系的连续性(1)

2. 数列极限 2.1 实数系的连续性 人类对数系认识的历史&#xff1a; 人类最早对数系的认识是自然数集合 N \mathbb{N} N&#xff0c;自然数系对加法和乘法是封闭的&#xff08;这里的封闭是指&#xff1a;若 m ∈ N , n ∈ N ⇒ m n ∈ N , m n ∈ N m\in\mathbb{N},n\in\ma…...

Speech Synthesis (LASC11062)

大纲 Module 1 – introductionModule 2 - unit selectionModule 3 - unit selection target cost functionsModule 4 - the databaseModule 5 - evaluationModule 6 - speech signal analysis & modellingModule 7 - Statistical Parametric Speech Synthesis (SPSS)Modu…...

拟合与插值|线性最小二乘拟合|非线性最小二乘拟合|一维插值|二维插值

挖掘数据背后的规律是数学建模的重要任务&#xff0c;拟合与插值是常用的分析方法 掌握拟合与插值的基本概念和方法熟悉Matlab相关程序实现能够从数据中挖掘数学规律 拟合问题的基本提法 拟合问题的概念 已知一组数据(以二维为例)&#xff0c;即平面上n个点 ( x i , y i ) …...

《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类

结果和代码 这里只涉及一个办法 方法部分 def main():rX, rY eval(input("Enter regular polygon x and y axis:"))regular_num eval(input("Enter regular number: "))side_long eval(input("Enter side number: "))a exCode07.RegularPol…...

使用Virtio Driver实现一个计算阶乘的小程序——QEMU平台

目录 一、概述 二、代码部分 1、Virtio 前端 (1) User Space (2) Kernel Space 2、Virtio 后端 三、运行 QEMU Version&#xff1a;qemu-7.2.0 Linux Version&#xff1a;linux-5.4.239 一、概述 本篇文章的主要内容是使用Virtio前后端数据传输的机制实现一个计算阶乘的…...

【PyCharm】配置“清华镜像”地址

文章目录 前言一、清华镜像是什么&#xff1f;二、pip是什么&#xff1f;三、具体步骤1.复制镜像地址2.打开PyCharm&#xff0c;然后点击下图红框的选项3.在弹出的新窗口点击下图红框的选项进行添加4.在URL输入框中粘贴第一步复制的地址&#xff0c;名字可以不更改&#xff0c;…...

IO器件性能评估

整体逻辑&#xff1a;需要先了解到读写速率的差异&#xff0c;在明确使用场景。比如应用启动过程中的IO主要是属于随机读的io 评估逻辑&#xff1a; UFS 与 eMMC主要差别在io读写能力&#xff1a; 1&#xff0c;对比UFS、eMMC的规格书标注的io读写能力 ufs spec : sequentia…...

在js中判断对象是空对象的几种方法

使用 Object.keys() 方法 Object.keys() 方法返回对象自身的可枚举属性名称组成的数组。如果数组的长度为 0&#xff0c;那么对象是空的。 function isEmptyObject(obj) {return Object.keys(obj).length 0 && obj.constructor Object; }const obj1 {}; const obj2…...

【整理】后端接口设计和优化相关思路汇总

文章目录 明确的接口定义和文档化使用RESTful设计规范分页和过滤合理使用缓存限流与熔断机制安全性设计异步处理与后台任务接口参数校验&#xff08;入参和出参&#xff09;接口扩展性考虑核心接口&#xff0c;线程池隔离关键接口&#xff0c;日志打印接口功能单一性原则接口查…...

docker 部署 sql server

众所周知&#xff0c;sql server不好装&#xff0c;本人之前装了两次&#xff0c;这个数据库简直是恶心。 突然想到&#xff0c;用docker容器吧 果然可以 记得放开1433端口 还有 记得docker加速&#xff0c;不然拉不到镜像的最后工具还是要装的&#xff0c;这个就自己研究吧。 …...

微信云开发云存储 下载全部文件

一、安装 首先按照这个按照好依赖&#xff0c;打开cmd 安装 | 云开发 CloudBase - 一站式后端云服务 npm i -g cloudbase/cli 安装可能遇到的问题 ‘tcb‘ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。-CSDN博客 二、登录 在cmd输入 tcb login 三、…...

1、巡线功能实现(7路数字循迹)

一、小车运行 1.PWM初始化函数 (pwm.c中编写) 包括四个轮子PWM通道使用的GPIO接口初始化、定时器初始化、PWM通道初始化。 void PWM_Init(uint16_t arr,uint16_t psc); 2.PWM占空比设置函数 (pwm.c中编写) 此函数调用了四个通道设置占空比的函数&#xff0c;作用是方便修改四…...

来了...腾讯内推的软件测试面试PDF 文档(共107页)

不多说&#xff0c;直接上干货&#xff08;展示部分以腾讯面试纲要为例&#xff09;完整版文末领取 通过大数据总结发现&#xff0c;其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点&#xff1a; 全网首发-涵盖16个技术栈 第一部分&#xff0c;测试理论&#x…...

Android大脑--systemserver进程

用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章&#xff0c;技术文章也可以有温度。 本文摘要 系统native进程的文章就先告一段落了&#xff0c;从这篇文章开始写Java层的文章&#xff0c;本文同样延续自述的方式来介绍systemserver进程&#xff0c;通过本文您将…...

python项目部署:Nginx和UWSGI认识

Nginx: HTTP服务器&#xff0c;反向代理&#xff0c;静态资源转发&#xff0c;负载均衡&#xff0c;SSL终端&#xff0c;缓存&#xff0c;高并发处理。 UWSGI: Python应用程序服务器&#xff0c;WSGI兼容&#xff0c;多进程管理&#xff0c;快速应用部署&#xff0c;多种协议支…...

【区块链+金融服务】农业大宗供应链线上融资平台 | FISCO BCOS应用案例

释放数据要素价值&#xff0c;FISCO BCOS 2024 应用案例征集 粮食贸易受季节性影响显著。每年的粮收季节&#xff0c;粮食收储企业会根据下游订单需求&#xff0c;从上游粮食贸易商或粮农手 里大量采购粮食&#xff0c;并分批销售给下游粮食加工企业&#xff08;面粉厂、饲料厂…...

2025ICASSP Author Guidelines

Part I: General Information ​​​​​​Procedure ICASSP 2025 论文提交与评审过程将与往届会议类似&#xff1a; 有意参加会议的作者需提交一份完整描述其创意和相关研究成果的文件&#xff0c;技术内容&#xff08;包括图表和可能的参考文献&#xff09;最多为4页&…...

Openstack 所需要的共享服务组件及核心组件

openstack 共享服务组件&#xff1a; 数据库服务&#xff08;Database service&#xff09;:MariaDB及MongoDB 消息传输服务&#xff08;messages queues&#xff09;&#xff1a;RabbitMQ 缓存(cache)&#xff1a;Memcache 时间同步&#xff08;time sync&#xff09;&…...

解密Linux中的通用块层:加速存储系统,提升系统性能

通用块层 通用块层是Linux中的一个重要组件&#xff0c;用于管理不同块设备的统一接口&#xff0c;减少不同块设备的差异带来的影响。它位于文件系统和磁盘驱动之间&#xff0c;类似于Java中的适配器模式&#xff0c;让我们无需关注底层实现&#xff0c;只需提供固定接口即可。…...

浅析国有商业银行人力资源数字化平台建设

近年来&#xff0c;在复杂的国际经济金融环境下&#xff0c;中国金融市场整体运行保持稳定。然而&#xff0c;随着国内金融机构改革的不断深化&#xff0c;国有商业银行全面完成股改上市&#xff0c;金融市场规模逐步扩大&#xff0c;体系日益完善&#xff0c;同时行业的竞争也…...

微信h5跳转消息页关注公众号,关注按钮闪一下消失

一、需求背景 在微信里访问h5页面&#xff0c;在页面里跳转到微信公众号消息页关注公众号。如下图&#xff1a; 二、实现跳转消息页关注公众号 跳转链接是通过 https://mp.weixin.qq.com/mp/profile_ext?actionhome&__bizxxxxx&scene110#wechat_redirect 来实现。…...

掌握PyTorch的加权随机采样:WeightedRandomSampler全解析

标题&#xff1a;掌握PyTorch的加权随机采样&#xff1a;WeightedRandomSampler全解析 在机器学习领域&#xff0c;数据不平衡是常见问题&#xff0c;特别是在分类任务中。PyTorch提供了一个强大的工具torch.utils.data.WeightedRandomSampler&#xff0c;专门用于处理这种情况…...

网络丢包深度解析:影响、原因及优化策略

摘要 网络丢包是数据在传输过程中未能成功到达目的地的现象&#xff0c;它对网络通信的性能有着显著的影响。本文将深入探讨网络丢包的定义、原因、对性能的影响&#xff0c;以及如何通过技术手段进行检测和优化。 1. 网络丢包的定义 网络丢包发生在数据包在源和目的地之间的…...