C++11中的新特性
文章目录
一、基于范围的for循环
C++ 11提供了一个特殊版本的 for 循环,在很多情况下,它都可以简化数组的处理,这就是基于范围的 for 循环。
在使用基于范围的 for 循环处理数组时,该循环可以自动为数组中的每个元素迭代一次。不必使用计数器变量控制其迭代,也不必担心数组下标越界的问题。
基于范围的 for 循环使用了一个称为范围变量的内置变量。每次基于范围的 for 循环迭代时,它都会复制下一个数组元素到范围变量。例如,第一次循环迭代,范围变量将包含元素 0 的值;第二次循环迭代,范围变量将包含元素 1 的值,以此类推
基于范围的for循环的一般格式
for (dataType rangeVariable : array) //可以结合auto一起使用
statement;
dataType:是范围变量的数据类型。它必须与数组元素的数据类型一样,或者是数组元素可以自动转换过来的类型。(可以使用auto)
rangeVariable:是范围变量的名称。该变量将在循环迭代期间接收不同数组元素的值。在第一次循环迭代期间,它接收的是第一个元素的值;在第二次循环迭代期间,它接收的是第二个元素的值;以此类推。
array:是要让该循环进行处理的数组的名称。该循环将对数组中的每个元素迭代一次。
statement:是在每次循环迭代期间要执行的语句。要在循环中执行更多的语句,则可以使用一组大括号来包围多个语句。
举例子
例如,假设已经定义了以下数组:
int numbers[] = {1,3,5,7,9,2,4,6,8,10};
可以使用基于范围的 for 循环来显示 numbers 数组的内容。语句如下
for(int val : numbers)
{
cout << "The next value is ";
cout << val << endl;
}
当然了,也可以使用auto关键字,代码如下
for (auto val : numbers)
{
cout << "The next value is ";
cout << val << endl;
}