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

C++11新增了一种循环:基于范围的for循环。这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如下例所示

for语句允许简单的范围迭代:(只遍历,不修改)

    int arrayData[] = {1, 2, 3, 4, 5};

    for(int x : arrayData)
        cout << x << " ";
    cout << endl;

    string str("some string.");
// auto 类型也是 C++11 新标准中的,用来自动获取变量的类型
for(auto c : str) cout << c << " "; cout << endl;

其中,x最初表示数组arrayData的第一个元素。显示第一个元素,不断执行循环,而x依次表示数组的其他元素。因此,上述代码显示全部的5个元素。总之,该循环显示数组中的每个值。

auto 类型也是 C++11 新标准中的,用来自动获取变量的类型。

 

要修改数组的元素,需要使用不同的循环变量语法:(边遍历,边修改)

    int arrayData[] = {1, 2, 3, 4, 5};

    for(int &x : arrayData)
    {
        x++;
        cout << x << " ";
    }
    cout << endl;

    string str("some string.");
    for(auto &c : str)
    {
        c = toupper(c);
        cout << c << " ";
    }
    cout << endl;

 上述的程序使用for语句遍历arrayData数组,每个数组元素乘2;使用for语句遍历一个字符串,并将所有字符全部变为大写;

 

 参考链接:

C++for循环

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

C++11基于范围的for循环

原文地址:https://www.cnblogs.com/zkfopen/p/10630731.html