C++ 使用多维数组c+增强for循环+;
如何将增强的for循环与多维数组一起使用?(c++11,尽管您可以自由回答其他版本的问题) 我们将从两个维度开始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
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
中的&
是必需的,否则一维数组将衰减为指针。