c++之范围for

概念:

对于以前要遍历一个数组,需要程序员自己书写数组的范围(sizeof)因此c++中引入范围for,避免因为范围书写错误而导致程序有意想不到的结果

用法:

for(变量:范围)用:号隔开,第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围。

int main()
{
	int arr[] = { 1,2,3,4,5 };
	for (auto a : arr)
	{
		a = a * 2;
		cout << a << endl;
	}
	return 0;
}

与普通的for循环一样,可以用break和continue

使用条件:

1.for循环的范围必须是确定的,也就是相当于数组中的第一个元素和最后一个元素的范围

2.对于类而言,要提供begin和end的方法。

void test(int arr[])
{
	for (auto a : arr)
	{
		cout << a << endl;
	}
}

在 C++ 里,当数组作为函数参数传递时,它会退化为指向数组首元素的指针。

这样范围就不确定了。

所以在 void test(int arr[]) 中,arr 实际上是一个 int* 类型的指针,并非数组类型。

而基于范围的 for 循环(也就是 for (auto a : arr) 这种形式)要求其右侧的表达式必须是一个数组或者实现了 begin() 和 end() 成员函数(或者非成员 begin() 和 end() 函数)的容器类型。指针类型并不满足这个要求,因此不能直接在基于范围的 for 循环中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值