对数组这种多个同类型元素构成的序列对象,可以用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++;
}
}