2013-10-23 67 views
0

你好,我是相當新的編程。我介紹了Java類,並且正在使用C++。有人可以幫助我與3D陣列

我的問題是,在3D陣列:

int myArr[a][b][c]; 

這是定義層中的一個? ac

+5

「定義圖層」是什麼意思? – jrd1

+2

螺旋規則:'myArr'是由''''int''數組的'''數組'陣列組成的數組。 – chris

+0

你可能需要知道的東西,但是整個數組將被順序存儲在內存中。 –

回答

1

聲明和使用多維數組時,由您決定數組的每一層意味着什麼。

int myArray[6][3][9] 

鑑於此陣,只記得第一個索引(最接近變量名)具有indicies 0-5,中間索引有indicies 0-2,最後指數有indicies 0-8。只要你在每個界限中,你都會好起來的。

+2

還有更多。當你遍歷一個大數組(多於一個維度)迭代遍歷元素時,它們會以相同的順序遍歷它們在內存中的顯示,這可以提高緩存的使用率,因此可以提供更高的性能(我見過的比例超過10:1 )速度差異。 –

+0

所以我可以使9是我的層數以及6? – Fert09

+0

@ Fert09對記憶以外的記憶沒有限制。 – yano

3

a將是定義「圖層」數量的變量,如果你的意思是每個「圖層」是一個二維網格b x c元素。

+0

所以在一個數組[2] [3] [4]該數組是3x4和2層? – Fert09

+0

@ Fert09這是正確的。 –

4

在C++中分配數組的方式,您將擁有一個塊,每個塊指向一個指向c塊的b塊。就像這樣:

a -> b -> c 
      c 
      c 
     b -> c 
      c 
      c 

所以,我要說一個是定義層。

相關問題