C++:范围for

范围for(range-based for)是C++的一种循环结构, 是在 C++11 这个标准中引入的,这种类型的for循环使得遍历数组、容器中的元素更加简便和直观。
一、范围for语法
for ( 类型 变量名 : 数组名 )
语句 //多条语句需要加⼤括号

示例:打印数组

#include <iostream>
using namespace std;
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };for (int e : arr){cout << e << " ";}return 0;
}

上面代码中的 for 就是 范围 for ,代码的意思是将 arr 数组中的元素,依次放在 e 变量中,然后
打印 e ,直到遍历完整个数组的元素。这里的 e 是一个单独的变量,不是数组的元素,所以对 e 的修改,不会影响数组。
#include <iostream>
using namespace std;
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };for (int e : arr){e=0;//不会改变数组元素的值}for (int e : arr){cout << e << " ";}return 0;
}

需要注意的是范围 for 是对数组中所有元素进行遍历的,但在平时使用中,可能只需要遍历数组中指定个数的元素,这样范围 for 就不合适了。
二、auto 关键字
auto 的主要用途是让编译器自动推导出变量的类型的,比如:
#include <iostream>
using namespace std;
int main()
{auto a = 3.14;auto b = 100;auto c = 'x';return 0;
}

使用VS进行调试我们就能发现编译器已经自动推导出a,b,c这三个变量的类型。

当我们 使用  auto 类型,上面的范围 for 也可以这样写:
#include <iostream>
using namespace std;
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };for (auto e : arr) //auto能够自动推导数组中每个元素的数据类型,在数组范围内遍历打印元素{cout << e << " ";}return 0;
}
范围 for e 前面的类型可以是 auto 关键字,当你不知道数组中放什么类型的时候,可以使用auto 作为类型, auto 在范围 for 中很常用。如果明确的知道数组元素的数据类型,也可以将
auto 换成对应的数据类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础概念复习

前言 本篇文章作基础复习用&#xff0c;主要是在C学习中遇到的概念总结&#xff0c;后续会继续补充。如有不足&#xff0c;请前辈指出&#xff0c;万分感谢。 1、什么是封装&#xff0c;有何优点&#xff0c;在C中如何体现封装这一特性&#xff1f; 封装是面向对象编程&…

前端工程化之手搓webpack5 --【elpis全栈项目】

前端工程化之手搓webpack5 --【elpis全栈项目】 导读 基本流程&#xff1a;输入 – 编译 – 输出 #mermaid-svg-V8Gi7RFNikCuEhax {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-V8Gi7RFNikCuEhax .error-icon{fil…

S7-200可用的modbus RTU完成位轮询

网上的信息比较散&#xff0c;官方说明也不充分&#xff0c;尤其是涉及主站按需写入的部分没有见到现成案例。 以下记录完成位轮询读取&#xff0c;同时按需写入的程序。 初始化主站&#xff0c;初始化块的完成位M9.3通过上升沿触发一个M9.4&#xff0c;用于后面启动轮询。 第…

特征点检测与匹配——MATLAB R2022b

特征点检测与匹配在计算机视觉中的作用至关重要,它为图像处理、物体识别、增强现实等领域提供了坚实的基础。 目录 Harris角点检测 SIFT(尺度不变特征变换) SURF(加速稳健特征) ORB(Oriented FAST and Rotated BRIEF) 总结 特征点检测与匹配是计算机视觉中的一项基…

Vue3实现PDF在线预览功能

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue篇专栏内容:Vue3现PDF在线预览功能 前言 在开发中&#xff0c;PDF预览和交互功能是一个常见的需求。无论是管理…

基于ESP32的桌面小屏幕实战[5]:PCB下单

1. 焊接调试前准备 PCB下单 点击“PCB下单” 检查一下DRC 确认无错误之后&#xff0c;确认下单 然后就会跳转到下面的网页 基本上保持默认选项即可。可以看到“焊盘喷镀”有3个选项。 在选择表面处理工艺时&#xff0c;应综合考虑产品的具体需求、环保法规以及成本等因素。例…

如何通过 6 种方式将照片从 iPhone 传输到戴尔 PC?

“你知道如何将iPhone上的照片转移到电脑上吗&#xff1f;我的iPhone上有很多照片&#xff0c;所以我想将这些照片从iPhone转移到电脑上。请给我一些建议&#xff0c;谢谢&#xff01;” - Nirenling 在戴尔社区中发布 您的iPhone是否被各种精彩的照片和视频占满而存储空间不…

升级 Spring Boot 3 配置讲解 —— 支持断点传输的文件上传和下载功能

学会这款 &#x1f525;全新设计的 Java 脚手架 &#xff0c;从此面试不再怕&#xff01; 在现代 Web 应用中&#xff0c;文件上传和下载是非常常见的需求。然而&#xff0c;当文件较大时&#xff0c;传统的上传下载方式可能会遇到网络不稳定或传输中断的问题。为了解决这些问题…

SpringBoot3-深入理解自动配置类的原理(尚硅谷SpringBoot3-雷神)

文章目录 目录了解自动配置 一、导入对应场景的Mean依赖&#xff1a;1、引入依赖**找到自动配置类的所有配置都存放在哪里** 二、编写主程序&#xff1a;SpringBootApplication观察源码时所需要知道的几个核心注解&#xff1a;1、观察SpringBootApplication源码都做了什么 三、…

Mongo高可用架构解决方案

Mongo主从复制哪些事(仅适用特定场景) 对数据强一致性要求不高的场景,一般微服务架构中不推荐 master节点可读可写操作,当数据有修改时,会将Oplog(操作日志)同步到所有的slave节点上。那么对于从节点来说仅只读,所有slave节点从master节点同步数据,然而从节点之间互相…

C#Halcon跨窗口颜色识别

机器视觉是一门让计算机模拟人类视觉功能的学科。颜色识别在其中扮演着重要的角色&#xff0c;它旨在通过对图像中的颜色信息进行分析&#xff0c;从而识别出图像中的目标物体或者区域。例如&#xff0c;在水果分拣系统中&#xff0c;可以根据水果的颜色&#xff08;如苹果的红…

01:C语言的本质

C语言的本质 1、ARM架构与汇编2、局部变量初始化与空间分配2.1、局部变量的初始化2.1、局部变量数组初始化 3、全局变量/静态变量初始化化与空间分配4、堆空间 1、ARM架构与汇编 ARM简要架构如下&#xff1a;CPU&#xff0c;ARM(能读能写)&#xff0c;Flash&#xff08;能读&a…

Transformer知识梳理

Transformer知识梳理 文章目录 Transformer知识梳理什么是Transformer&#xff1f;语言模型迁移学习 Transformer结构注意力层原始结构 总结 什么是Transformer&#xff1f; 语言模型 Transformer模型本质上都是预训练语言模型&#xff0c;大部分采用自监督学习&#xff08;S…

第29天:PHP应用弱类型脆弱Hash加密Bool类型Array数组函数转换比较

#知识点&#xff1a; 1、安全开发-原生PHP-弱类型脆弱 2、安全开发-原生PHP-函数&数据类型 3、安全开发-原生PHP-代码审计案例 1、 和 两个等号是弱比较&#xff0c;使用进行对比的时候&#xff0c;php解析器就会做隐式类型转换&#xff0c;如果两个值的类型不相等就会把两…

STM32F1学习——编码器接口

一、编码器接口 编码器接口可以接收正交编码器的信号&#xff0c;根据编码器旋转产生的正交信号脉冲&#xff0c;通过硬件自动控制CNT值的自增或自减&#xff0c;从而指出编码器的位置、旋转方向和旋转速度。 每个高级定时器和通用定时器都有一个编码器接口&#xff0c;他们会占…

网络安全的学习与实践经验(附资料合集)

学习资源 在线学习平台&#xff1a; Hack This Site&#xff1a;提供从初学者到高级难度的挑战任务&#xff0c;适合练习各种网络安全技术。XCTF_OJ&#xff1a;由XCTF组委会开发的免费在线网络安全网站&#xff0c;提供丰富的培训材料和资源。SecurityTube&#xff1a;提供丰…

行业商机信息付费小程序系统开发方案

行业商机信息付费小程序系统&#xff0c;主要是整合优质行业资源&#xff0c;实时更新的商机信息。在当今信息爆炸的时代&#xff0c;精准、高效地获取行业商机信息对于企业和个人创业者而言至关重要。 一、使用场景 日常浏览&#xff1a;用户在工作间隙或闲暇时间&#xff0c…

[Qt] 输入控件 | Line | Text | Combo | Spin | Date | Dial | Slider

目录 输入类控件 1、Line Edit 录入个人信息 使用正则表达式验证输入框的数据 验证两次输入的密码一致 切换显示密码 2、Text Edit 获取多行输入框的内容 验证输入框的各种信号 3、Combo Box 使用下拉框模拟麦当劳点餐 从文件中加载下拉框的选项 4、Spin Box 调整…

Flink CDC 自定义函数处理 SQLServer XML类型数据 映射 doris json字段方案

Flink CDC 自定义函数处理 SQLServer XML类型数据方案 1. 背景 因业务使用SQLServer数据库&#xff0c;CDC同步到doris 数仓。对于SQLServer xml类型&#xff0c;doris没有相应的字段对应&#xff0c; 可以使用json来存储xml数据。需要进行一步转换。从 flink 自定义函数入手…

JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示

投稿人GitCode ID&#xff1a;thinkgem 光引计划投稿项目介绍 JeeSite 快速开发平台&#xff0c;不仅仅是一个后台开发框架&#xff0c;它是一个企业级快速开发解决方案&#xff0c;后端基于经典组合 Spring Boot、Shiro、MyBatis&#xff0c;前端采用 Beetl、Bootstrap、Admi…