基于范围的for循环(C++11)
C++11新增了一种循环:基于范围(range-based)的for循环。
这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如:
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std::endl;
其中,x最初表示数组prices的第一个元素,显示第一个元素后,不断执行循环,而x以此表示数组的其他元素。因此,上述代码显示全部5个元素,每个元素占据一行。总之,该循环显示数组中的每个值。
要修改数组的元素,需要使用不同的循环变量语法:
for (double &x : prices)
x = x * 0.80;
符号&表明x是一个引用变量。
还可结合使用基于范围的for循环和初始化列表:
for (int x : {3, 5, 2, 8, 6})
cout << x << " ";
cout << "\n";