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.pswp.cn/web/65139.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65139.shtml
英文地址,請注明出處:http://en.pswp.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…

vue3使用setup語法糖組件基礎傳值

(1)&#xff1a;defineProps&#xff1a;傳入要使用的props定義自定義屬性&#xff0c;傳遞過來的值具有響應式&#xff0c;和props一樣&#xff1b; (2)&#xff1a;defineEimts&#xff1a;傳入要自定義的事件&#xff0c;emit實例去傳入自定義事件的值&#xff0c;和$emit或…

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預覽和交互功能是一個常見的需求。無論是管理…

常用的EDA 工具

1&#xff09; 邏輯設計&#xff1a; Cadence 的Verilog XL ? 模擬電路設計&#xff1a; Mentor 的Viewdraw ? 電路合成&#xff1a; Synopsys 的Design Compiler ? 電路仿真&#xff1a; Synopsys 的Hsim 和Hspice ? 人工布局&#xff1a; Cadence 的Virtuso ? 自動布局…

基于ESP32的桌面小屏幕實戰[5]:PCB下單

1. 焊接調試前準備 PCB下單 點擊“PCB下單” 檢查一下DRC 確認無錯誤之后&#xff0c;確認下單 然后就會跳轉到下面的網頁 基本上保持默認選項即可。可以看到“焊盤噴鍍”有3個選項。 在選擇表面處理工藝時&#xff0c;應綜合考慮產品的具體需求、環保法規以及成本等因素。例…

云原生架構的演變與實踐

云原生架構的演變與實踐 在現代軟件開發的時代背景下&#xff0c;云原生架構日益成為推動業務轉型的關鍵。它以云為中心的應用架構和開發思維&#xff0c;不僅包括了容器化的基本形式&#xff0c;更涉及全方位的應用管理及優化。本文將圍繞云原生的特征、遷移步驟以及模式展開…

探索現代 Web 開發中的流行技術:深入學習 Vite 的使用

在前端開發的世界中&#xff0c;構建工具扮演著越來越重要的角色。從 Webpack 到 Parcel&#xff0c;再到 Rollup&#xff0c;每個工具都有自己的獨特定位和目標。而今天&#xff0c;我們要討論的是一款近年來迅速崛起并受到廣泛歡迎的構建工具— Vite。 本文將從基本原理到實…

如何通過 6 種方式將照片從 iPhone 傳輸到戴爾 PC?

“你知道如何將iPhone上的照片轉移到電腦上嗎&#xff1f;我的iPhone上有很多照片&#xff0c;所以我想將這些照片從iPhone轉移到電腦上。請給我一些建議&#xff0c;謝謝&#xff01;” - Nirenling 在戴爾社區中發布 您的iPhone是否被各種精彩的照片和視頻占滿而存儲空間不…

『SQLite』表達式操作

摘要&#xff1a;表達式是一個或多個值、運算符和計算值的 SQL 函數的組合。SQL 表達式與公式類似&#xff0c;都寫在查詢語言中。 基本語法 SELECT column1, column2, columnN FROM table_name WHERE [CONTION | EXPRESSION];布爾表達式 SQLite 的布爾表達式在匹配單個值的…

升級 Spring Boot 3 配置講解 —— 支持斷點傳輸的文件上傳和下載功能

學會這款 &#x1f525;全新設計的 Java 腳手架 &#xff0c;從此面試不再怕&#xff01; 在現代 Web 應用中&#xff0c;文件上傳和下載是非常常見的需求。然而&#xff0c;當文件較大時&#xff0c;傳統的上傳下載方式可能會遇到網絡不穩定或傳輸中斷的問題。為了解決這些問題…

框架Tensorflow2

深度學習框架之Tensorflow2 Tensorflow2版本的介紹 Tensorflow(簡稱tf)是深度學習框架&#xff0c;大大簡化了建模的方法和步驟&#xff0c;把Keras Api當作核心&#xff0c;使用非常簡單&#xff0c;跨平臺&#xff0c;集成各種現成模型&#xff0c;eager mode使得調試起來不…

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

文章目錄 目錄了解自動配置 一、導入對應場景的Mean依賴&#xff1a;1、引入依賴**找到自動配置類的所有配置都存放在哪里** 二、編寫主程序&#xff1a;SpringBootApplication觀察源碼時所需要知道的幾個核心注解&#xff1a;1、觀察SpringBootApplication源碼都做了什么 三、…

Mongo高可用架構解決方案

Mongo主從復制哪些事(僅適用特定場景) 對數據強一致性要求不高的場景,一般微服務架構中不推薦 master節點可讀可寫操作,當數據有修改時,會將Oplog(操作日志)同步到所有的slave節點上。那么對于從節點來說僅只讀,所有slave節點從master節點同步數據,然而從節點之間互相…

商業領域 - 競標極簡理解

競標極簡理解 競標是一種投標過程&#xff0c;指參與者&#xff08;通常是企業或個人&#xff09;為了獲得某個項目或合同的執行權&#xff0c;向招標人&#xff08;通常是采購方或項目發起方&#xff09;提交報價和方案&#xff0c;并爭取獲得招標人的認可 競標是一種常見的招…

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…