這聽起來像是一個家庭作業問題,但我發誓它不是。1D陣列到2D陣列映射
我想爲這個2D數組包裝類構建一個迭代器。我想如果我能夠解決這個問題,那麼我可以構建我的迭代器。
我從0開始本1D連續9點的整數數組,並在8
[0, 1, 2, 3, 4, 5, 6, 7, 8]
結束,我給兩個變量horizontal_size = 3
和vertical_size = 3
我想使這個陣列成2D陣列,horizontal_size
,。爲簡潔起見,我們稱它們爲h
和v
。
,我想產生的結果是這樣的:
0 1 2
3 4 5
6 7 8
考慮到一維數組中的值,它告訴我的指數,還給出h
和v
,在這種情況下都是3。有沒有辦法在二維數組上生成索引?
例如,1D數組中的第一個元素爲0,它映射到array[0][0]
。第二個元素是1,它映射到array[0][1]
我想通過做array1d[i] mod vertical_size
可以得到垂直索引。
for getting the vertical index ::: th
0 = [0] [0] 0模3 = 0 1 = [0] [1] 1個模3 = 1 2 = [0] [2] 2模3 = 2
3 = [1] [0],等等... 4 = [1] [1] 5 = [1] [2]
6 = [2] [0] 7 = [ 2] [1] 8 = [2] [2]
但我不知道如何獲得水平索引。
我第一次沒有正確地閱讀你的答案,我想你說'我/ h'這是我試過的答案,但結果並不正確。我甚至沒有考慮用'v'來劃分。謝謝! – Rhs
索引是i/v和i%v,或者i/h和i%h,取決於你如何選擇它們,如果h = v就像這裏你不能分辨 – Joni
我原來有東西是5通過2.我剛剛發佈了3作爲一個簡單的例子。正確的anaswer是floor(i/v) – Rhs