使用多维数组c ++增强for循环

时间:2014-04-05 06:06:28

标签: c++ multidimensional-array

如何使用带有多维数组的增强型for循环? (c ++ 11,虽然可以随意回答其他版本)

我们将从两个维度开始......

int array[10][9];

//loop through first dimension (10)
    for(int i : sizeof(array)) {
       //do something
    }

编译器错误:这个基于范围的'用于'声明需要一个合适的"开始"功能,没有找到

它是否与多维数组真的仍然是一维有关?换句话说,int array [10] [9]等价于int array [90]

1 个答案:

答案 0 :(得分:0)

要使用基于范围的循环,您应该传递已定义beginend的容器。试试这个:

for(auto &rows: array) // rows
{
    for(auto &x: rows)
    {
        // ...
    }
}

int array[10][9] 等同于int array[19],可以将其定义为int array[10*9]