C++11基于范围的for循环
C++11包含一种新的 for 循环,称为基于范围的 for 循环,可以简化对数组元素的遍历。格式如下:
1 for(Type VarName : Array){ 2 //每个元素的值会依次赋给 VarName 3 }
例如:
1 int array[] = {1, 2, 3, 4}; 2 for(int x : array){ 3 cout << x; 4 } 5 cout << endl;
例子会输出:1234
定义用于遍历数组的变量时,可以使用和普通函数参数一样的修饰符。本例的 x 变量相当于传值参数。在循环内部更改 x 不会更改数组。但如果用 & 将 x 定义成传引用,对 x 的修改就会反映到数组中。可以使用 const 修饰符指定变量不能修改。
下例将数组的每个元素加一并输出。输出循环用 auto 数据类型自动判断数组元素的类型。
1 int array[] = {2, 4, 6, 8}; 2 for(int &x : array){ 3 x++; 4 } 5 for(auto x : array){ 6 cout << x; 7 } 8 cout << endl;
输出结果为:3579