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

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

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.kler.cn/a/530043.html

相关文章:

  • deep seek R1本地化部署及openAI API调用
  • 项目练习:重写若依后端报错cannot be cast to com.xxx.model.LoginUser
  • Node.js 和 npm 安装教程
  • 扣子平台音频功能:让声音也能“智能”起来。扣子免费系列教程(14)
  • 初入机器学习
  • 使用LLaMA-Factory对AI进行认知的微调
  • 使用 HTTP::Server::Simple 实现轻量级 HTTP 服务器
  • kamailio-kamctl monitor解释
  • 面经--C语言——sizeof和strlen,数组和链表,#include <>和 #include ““ #define 和typedef 内存对齐概述
  • Pluto固件编译笔记
  • C#,shell32 + 调用控制面板项(.Cpl)实现“新建快捷方式对话框”(全网首发)
  • Rust 函数使用详解
  • solidity高阶 -- Eth支付
  • 快速提升网站收录:利用网站用户反馈机制
  • Python函数基础
  • 系统思考—决策
  • Python 深拷贝与浅拷贝:数据复制的奥秘及回溯算法中的应用
  • deepseek+vscode自动化测试脚本生成
  • Error: Expected a mutable image
  • C++:抽象类习题
  • 用Python替代OpenMV IDE显示openmv USB 图像
  • vscode+vue3+高得地图开发过过程中本地视频及地图json文件的发布问题
  • 算法题(55):用最少数量的箭引爆气球
  • 【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(二)
  • DeepSeek R1 简易指南:架构、本地部署和硬件要求
  • 软件工程概论试题五