范围for语法(除for循环/while循环/do...while循环的第四种循环)

循环的基本语句:

for ( 类型 变量名 : 数组名 ){

}

使用举例:

打印正整数1~10的值,每行打印一个整数:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;

int main() {
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    for(int p: a){//int p中的变量p是任意的,只要p的类型和数组a内的元素类型一样就行,均不影响数组的输出结果 
	    cout<<p<<endl;
    }
}

上面的代码运行过程中可能会遇到如下报错:

这个时候复制错误发给ai,ai的提供的原因是:

你的编译器默认使用 C++98 标准编译代码,但范围 for 循环(for (auto x : 容器))是 C++11 及以上标准才支持的特性,所以会报错。

这个错误的解决方法:

1. Dev-C++

  • 打开 Dev-C++,点击顶部菜单栏「工具」→「编译选项」;
  • 在弹出的窗口中,勾选「编译器」→「编译时加入以下命令」;
  • 在输入框中输入:--std=c++11(注意是两个短横线);
  • 点击「确定」,重启 Dev-C++ 即可。

2. VS Code(MinGW 编译器)

  • 打开 .vscode 文件夹下的 tasks.json
  • args 数组中添加 "--std=c++11"。

再次运行代码,得到答案:

对于范围 for 要慎重使⽤!范围 for 是对数组中所有元素进⾏遍历的,但是我们实际在做题的

过程中,可能只需要遍历数组中指定个数的元素,这样范围 for 就不合适了。

也可以引入一个新的关键字:auto

auto的主要⽤途是让编译器⾃动推导出变量的类型的,⽐如上面的代码可以这样来写:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;

int main() {
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    for(auto p: a){//int p中的变量p是任意的,只要p的类型和数组a内的元素类型一样就行,均不影响数组的输出结果 
	    cout<<p<<endl;
    }
}
相关推荐
AndrewHZ1 小时前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾
人工智能·深度学习·算法·语言模型·大模型·llm·芯片开发
小星星闪亮登场2 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
玖玥拾3 小时前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI3 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
2501_942389553 小时前
Epoch AI旗下FrontierMath的负责人Elliot Glazer
数据结构·决策树·动态规划·散列表
小程故事多_803 小时前
用GRPO算法重塑多智能体系统,从原理落地到复杂任务规划实战
人工智能·算法
Hi李耶4 小时前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展
shylyly_4 小时前
104.二叉树的最大深度
数据结构·算法·104.二叉树的最大深度
AI科技星4 小时前
曲率‑挠率与 $\boldsymbol{\omega/c}$ 的关系、精算验证及其物理意义
c语言·开发语言·线性代数·算法·决策树·机器学习·ai科技星