9.C++11新特性 基于范围的for循环
创始人
2025-05-30 14:09:55

普通的for循环都是如下:

int a[] = {1, 2, 3, 4, 5};

for (int i = 0; i < sizeof(a) / sizeof(*a); ++i) {

cout << "a[" << i << "]" << a[i] << endl;

}

而c++11 基于范围的for循环是怎么样的呢:例子如下:

//基于范围的for循环

for (int &tmp : a) {

cout << "tmp " << tmp << endl;

}

发现实现同样的功能,基于范围的for循环代码更加简洁

但也要注意如下问题:

#include

using namespace std;

//形参中的数组,不是数组,是指针变量,无法确认元素个数

void func(int a[]) {

//error 基于范围的for循环 ,这个范围是确定的否则无法使用。

for (auto p : a) {

cout << p << endl;

}

}

int main() {

int a[] = {1, 2, 3, 4, 5};

//基于范围的for循环

for (int &tmp : a) {

cout << "tmp " << tmp << endl;

}

return 0;

}

上面的代码块 func 函数编译不过,原因是因为 基于范围的for循环,这个范围需要是确定的,然而func中的函数形参,不是数组,是指针变量,无法确定元素的个数,所以,无法编译过

相关内容

热门资讯

千机秀×潮玩市集!惠阳邀您共赏... 2025年12月,惠阳将迎来一场2025年粤港澳大湾区(惠州)无人机竞速大赛暨环南昆山-罗浮山引领区...
突发杭州美团优选突然不能下单,... 杭州美团优选咋突然不能下单了, 早上团长还发红包呢, 大家买菜都愁了 美团优选这个服务呢, 其实就...
原创 疙... 疙瘩汤,这道看似简单却充满温情的家常美食,以其独特的口感和丰富的营养,成为了无数家庭餐桌上的常客。无...
一口入魂!扎佐蹄膀:穿越古今的... “这扎佐蹄膀,真是百吃不厌,每次来都要点!”在贵阳市修文县扎佐街道的一家老字号餐馆里,食客李先生一边...
原创 冬... 寒冬腊月,正是进补的好时节。在众多滋补食材中,有一种鱼正当时令,它不仅价格亲民,味道鲜美,营养价值更...