C++ 基于范围的 for 循环2025年3月21日 | 阅读 5 分钟 在本主题中,我们将讨论 C++ 编程语言中的基于范围的 for 循环。C++ 语言在 C++11 及更高版本中引入了基于范围的 for 循环的新概念,它比常规的 for 循环要好得多。基于范围的 for 循环不需要大量的编码来实现 for 循环迭代。它是一个顺序迭代器,用于迭代容器中在一个范围(从开始到结束)内的每个元素。 ![]() 语法
注意:如果我们不知道容器元素的数据类型,我们可以使用 auto 关键字,它会自动识别 range_expression 的数据类型。使用基于范围的 for 循环打印数组中每个元素的程序让我们考虑一个使用 C++ 中基于范围的 for 循环打印 int 和 double 数组的示例。 program.cpp 输出 10 20 30 40 50 2.4 4.5 1.5 3.5 4.0 演示基于范围的 for 循环中的向量的程序让我们编写一个简单的程序来实现基于范围的 for 循环中的向量。 Program2.cpp 输出 5 10 25 20 25 使用 C++ 中基于范围的带引用的 for 循环打印数组的程序让我们考虑一个使用 C++ 中基于范围的 for 循环打印数组元素的示例。 Program3.cpp 输出 Before updating the elements: 1 3 -2 4 6 7 9 After modification of the elements: 3 9 -6 12 18 21 27 嵌套的基于范围的 for 循环当一个循环定义在另一个循环的主体内部时,该循环称为嵌套 for 循环。同样,当我们将一个范围定义在另一个基于范围的循环内部时,这种技术被称为嵌套的基于范围的 for 循环。 语法 在上面的语法中,我们定义了一个基于范围的 for 循环在另一个循环内部。这里我们称之为 C++ 中的内层和外层基于范围的 for 循环。 C++ 中打印嵌套的基于范围的 for 循环的程序考虑一个在 C++ 编程语言中演示嵌套的基于范围的 for 循环的示例。 Range.cpp 输出 x = 0 and j = 1 x = 0 and j = 2 x = 0 and j = 3 x = 0 and j = 4 x = 0 and j = 5 x = 1 and j = 1 x = 1 and j = 2 x = 1 and j = 3 x = 1 and j = 4 x = 1 and j = 5 x = 2 and j = 1 x = 2 and j = 2 x = 2 and j = 3 x = 2 and j = 4 x = 2 and j = 5 x = 3 and j = 1 x = 3 and j = 2 x = 3 and j = 3 x = 3 and j = 4 x = 3 and j = 5 传统 for 循环和基于范围的 for 循环有什么区别?传统的 for 循环用于重复执行代码块,直到指定条件为真。传统的 for 循环有三个参数:变量的初始化、条件的指定以及最后一个计数器,如果条件保持为真,计数器将递增。 语法 基于范围的循环 另一方面,C++ 11 及更高版本中提供了一个新的基于范围的 for 循环。它有两个参数:范围声明和范围表达式。它也用于在一个范围内重复执行代码块。 语法 range_declaration 用于声明与 range_expression(容器)相关的变量类型。range_expression:它就像一个容器,以顺序方式保存相同类型的元素。loop_statement 定义了在 for 循环内部执行的语句。 基于范围的 for 循环的优点
基于范围的 for 循环的缺点
|
在本文中,我们将讨论其特性、示例和用例。什么是 std::knuth_b() 函数? std::knuth_b 是 C++ 标准库中可用的一种随机数生成器,以著名的计算机科学家 Donald E. Knuth 的名字命名。它位于 <random>...中。
阅读 4 分钟
移动数字键盘问题是一个图遍历组合问题,其灵感来自手机键盘周围的限制(布局和移动)。因此,问题在于确定我们能够形成指定长度 n 的数字的唯一序列的数量...
阅读 16 分钟
众所周知的布尔可满足性(SAT)问题在计算机科学、人工智能和逻辑编程中有许多应用,其中有一个有趣的问题实例,称为 2-SAT 问题,或 2-可满足性问题。SAT 问题的主要目标是确定一个给定的布尔公式是否可以...
11 分钟阅读
在本文中,我们将探讨 Bertrand 假设及其在 C++ 中的示例。什么是 Bertrand 假设? Joseph Bertrand,一位法国数学家,认为 Bertrand 假设是一项重要的数学理论,并以此命名。Bertrand 首先陈述了该定理——英国数学家...
阅读 6 分钟
在本文中,我们将讨论 C++ 中二进制字符串的最长非递增子序列。引言:最长非递增子序列 (LNIS) 的目标通常是找到二进制字符串中最长的非递减或保持不变的子序列的长度……
5 分钟阅读
在本文中,我们将讨论 C++ 中的自定义乱序单词游戏。乱序单词游戏的目的是为给定的字母序列设置动画,并在其中创建一个有效的单词。玩家会收到一个打乱顺序的单词,其中...
阅读 4 分钟
C++ 是由 Bjarne Stroustrup 设计的广泛使用且强大的强类型语言,是 C 语言的改进版本。C++ 在处理系统资源方面具有相当大的能力,可用于过程式和面向对象编程,并允许在活动中应用...
阅读 6 分钟
在本文中,我们将讨论其几种方法和示例。C++ 中的 std::bad_alloc() 是什么? std::bad_alloc() 函数是 C++ 中的一个标准异常类,定义在 C++ 标准库的头文件中。它专门用于处理…的情况。
阅读 4 分钟
概述 国际移动设备识别码 (IMEI) 是分配给每台移动设备的 15 位数字。它用于识别设备并阻止被盗或未经授权的手机。有效的 IMEI 号码遵循 Luhn 算法,这是一种用于验证各种类型标识号的校验和公式……
阅读 4 分钟
海景的魅力是永恒的,超越了世代和文化。站在繁华都市的边缘,看着海浪拍打海岸,会唤起一种宁静、敬畏和灵感的感觉。对许多人来说,拥有一个享有无遮挡视野的房产的前景……
阅读 12 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India