当前位置:嗨网首页>书籍在线阅读

22-基于范围的for循环(C++11)

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.4 基于范围的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; //20% off sale

符号&表明x是一个引用变量,这个主题将在第8章讨论。就这里而言,这种声明让接下来的代码能够修改数组的内容,而第一种语法不能。

还可结合使用基于范围的for循环和初始化列表:

for (int x : {3, 5, 2, 8, 6})
    cout << x << " ";
cout << ‘\n’;

然而,这种循环主要用于第16章将讨论的各种模板容器类。