C++ 的range for

对数组这种多个同类型元素构成的序列对象,可以用range for 遍历其中的元素。

有两种形式
1、for(auto var:arr)
2、for(auto &var:arr)
第一种形式,只是把arr中的每一个元素依此赋值给var,修改var不能影响数组arr,而第二种形式是通过引用的方法,依此绑定每一个数组arr里的元素,达到修改var即可修改数组里元素本身的效果

举个例子:
第二种形式:

int v[] = { 1,2,3,4,5,6 };
int i = 0;
for (int &e : v)
{
    e *= 2;//可通过e乘2实现数组里每个元素乘2倍,如果把上两行中的&去掉则不能了
    cout << v[i] << endl;
    i++;
}
//例子2,嵌套使用
int sb[4][5];
	int g = 0;
	for (auto &row : sb)
	{
		for (auto& ev : row)//嵌套,给元素依此赋予自然数。
		{
			ev = g;
			g++;
		}
	}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注