C++11新特性之范围for循环

server/2025/2/4 1:48:49/

1.介绍

        C++11标准之前,使用for循环遍历数组或容器,只能使用以下结构:

for(表达式1;表达式2;表达式3){

循环体

}

        那么在C++11标准中,除了上面的方法外,又引入了一种全新的语法结构,如下所示。

for(declaration:expression){

循环体

}

        declaration:此处定义一个变量,类型为要遍历序列中元素的类型。(这里可以使用auto自动推导)。

        expression:表示要遍历的序列,常见的例如数组或容器。

#include <iostream>
using namespace std;int num2[5] = {1, 2, 3, 4, 5};
int main() {for (int num : num2) {cout << num << " ";}return 0;
}

2.两种遍历方式的异同

相同点:

        两种遍历方式都是实现对元素进行逐个访问和处理。

不同点:

        (1)传统的for循环语法结构相对复杂,范围for循环语法更加简洁。

        (2)传统for循环灵活性更高,能用于更加广泛的场景,实现更加复杂的循环逻辑。范围for循环主要用于简单的序列遍历,其设计初衷就是为了简化常规的遍历操作。(因为用的最多)

        (3)在遍历容器时,传统for循环需要使用迭代器访问元素,范围for循环则隐藏了迭代器的细节,直接将容器值赋给变量,使代码更简洁,但也限制了对迭代过程的直接控制。

        (4)范围for循环的代码可读性与简洁性更好。

3.总结

在实际使用中,范围for循环常用于简单序列遍历,传统for循环则在处理复杂循环逻辑或直接控制迭代器等方面具有更大优势。可以根据情况选择合适的循环方式。


http://www.ppmy.cn/server/164767.html

相关文章

算法设计-插入排序(C++)

一、算法原理 插入排序是一种简单直观的排序算法&#xff0c;它的工作原理是将未排序数据插入到已排序序列的合适位置。具体来说&#xff0c;插入排序将数组分为已排序和未排序两部分&#xff0c;初始时已排序部分只有数组的第一个元素&#xff0c;然后依次从未排序部分取出元…

java 异常处理

public class Main {/*what:exception copy withwhat character &#xff1a;1.try catch finally 测试语句 捕获异常后不再终止程序 函数结束后输出异常类名字 异常产生类 方法 行数2.小异常&#xff08;小范围&#xff09;在前 大异常在后 保证 大异常托底例&#xff1a;j…

Golang Gin系列-9:Gin 集成Swagger生成文档

文档一直是一项乏味的工作&#xff08;以我个人的拙见&#xff09;&#xff0c;但也是编码过程中最重要的任务之一。在本文中&#xff0c;我们将学习如何将Swagger规范与Gin框架集成。我们将实现JWT认证&#xff0c;请求体作为表单数据和JSON。这里唯一的先决条件是Gin服务器。…

第1节课:算法初印象—开启算法世界的大门

目录 一、算法是什么&#xff08;一&#xff09;官方定义&#xff08;二&#xff09;算法的五大特性&#xff08;三&#xff09;算法与程序的关系 二、算法在生活中的奇妙体现&#xff08;一&#xff09;日常出行中的算法&#xff08;二&#xff09;购物消费中的算法&#xff0…

【论文复现】基于Otsu方法的多阈值图像分割改进鲸鱼优化算法

目录 1.摘要2.鲸鱼优化算法WOA原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 本文提出了一种基于Otsu方法的多阈值图像分割改进鲸鱼优化算法&#xff08;RAV-WOA&#xff09;。RAV-WOA算法能够在分割灰度图像和彩色图像时&#xff0c;自动选择最优阈值&#xff0c;并确…

嵌入式C语言:大小端详解

目录 一、大小端的概念 1.1. 大端序&#xff08;Big-endian&#xff09; 1.2. 小端序&#xff08;Little-endian&#xff09; 二、大小端与硬件体系的关系 2.1. 大小端与处理器架构 2.2. 大小端与网络协议 2.3. 大小端对硬件设计的影响 三、判断系统的大小端方式 3.1.…

基于SpringBoot电脑组装系统平台系统功能实现六

一、前言介绍&#xff1a; 1.1 项目摘要 随着科技的进步&#xff0c;计算机硬件技术日新月异&#xff0c;包括处理器&#xff08;CPU&#xff09;、主板、内存、显卡等关键部件的性能不断提升&#xff0c;为电脑组装提供了更多的选择和可能性。不同的硬件组合可以构建出不同类…

【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构

&#x1f31f;个人主页&#xff1a;落叶 &#x1f31f;当前专栏: 机器学习专栏 目录 引言 分裂型层次聚类&#xff08;Divisive Hierarchical Clustering&#xff09; 1. 基本原理 2. 分裂型层次聚类的算法步骤 Step 1: 初始化 Step 2: 选择分裂的簇 Step 3: 执行分裂操作…