如何使用带有多维数组的增强型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]
答案 0 :(得分:0)
要使用基于范围的循环,您应该传递已定义begin
和end
的容器。试试这个:
for(auto &rows: array) // rows
{
for(auto &x: rows)
{
// ...
}
}
int array[10][9]
不等同于int array[19]
,可以将其定义为int array[10*9]
。