2013-05-12 81 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 
    } 
}