2013-05-12 83 views
2

我有一个3x3二维数组。我想要达到它的所有元素。可能吗?我这样做:二维数组中的foreach循环在C++中

int myArray[3][3]; 
for(int &i: myArray){ 
    //MY CODE HERE. 
} 

但是,当我这样做,我得到错误:

error: C2440: 'initializing' : cannot convert from 'int [3]' to 'int &' 

我也用MSVC++编译器2012 Qt的5.0 x64的。 如果可以这样做,那我怎样才能得到每个元素的索引号?

回答

6

只需使用auto关键字

int myArray[3][3]; 

for(auto& rows: myArray) // Iterating over rows 
{ 
    for(auto& elem: rows) 
    { 
     // do some stuff 
    } 
} 
+0

是它的C++ 0x独占? – 2013-05-12 15:46:51

+0

不会让'i'变成'int *'吗? – mwerschy 2013-05-12 15:47:29

+0

@MohammadRezaHajianpour,'auto'关键字是C++ 11的一个特性,是的(比如基于范围的循环) – soon 2013-05-12 15:49:41

0

只要把int*而不是int&

int myArray[3][3]; 

for(int* rows: myArray) // Iterating over rows 
{ 
    for(int* elem: rows) 
    { 
     // do some stuff 
    } 
}