Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用多维数组c+增强for循环+;_C++_Multidimensional Array - Fatal编程技术网

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

C++ 使用多维数组c+增强for循环+;,c++,multidimensional-array,C++,Multidimensional Array,如何将增强的for循环与多维数组一起使用?(c++11,尽管您可以自由回答其他版本的问题) 我们将从两个维度开始 int array[10][9]; //loop through first dimension (10) for(int i : sizeof(array)) { //do something } 编译器错误:此基于范围的“for”语句需要合适的“begin”函数,但未找到任何函数 这可能与多维数组仍然是一维有关吗?换句话说,int-array[1

如何将增强的for循环与多维数组一起使用?(c++11,尽管您可以自由回答其他版本的问题)

我们将从两个维度开始

int array[10][9];

//loop through first dimension (10)
    for(int i : sizeof(array)) {
       //do something
    }
编译器错误:此基于范围的“for”语句需要合适的“begin”函数,但未找到任何函数


这可能与多维数组仍然是一维有关吗?换句话说,int-array[10][9]相当于int-array[90]

要使用基于范围的循环,您应该传递一个容器,其中定义了
开始
结束
。试试这个:

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

int-array[10][9]
int-array[19]
是不等价的,它可以定义为
int-array[10*9]

试试90,不要偷懒。这不是懒惰,更多的是关于数组改变大小的可能性,最大限度地减少“修复”额外代码的需要。@cminusmius-使用迭代器和STL。顺便说一句,那句话是一句话contradiction@ED治疗-更改1行代码和x行代码更聪明。不更改任何代码行更好-请参阅下面的答案。注意,在
auto&rows
中的
&
是必需的,否则一维数组将衰减为指针。