これは宿題の問題のように聞こえるかもしれませんが、そうではないことを誓います。
この 2D 配列ラッパー クラスの反復子を作成しようとしています。この問題を解決できれば、イテレータを構築できると考えました。
0 から始まり 8 で終わる 9 つの連続した整数のこの 1D 配列があります。
[0, 1, 2, 3, 4, 5, 6, 7, 8]
2 つの変数が与えられhorizontal_size = 3
、vertical_size = 3
horizontal_size
この配列をbyである 2D 配列にしたいと考えていvertical_size
ます。簡潔にするために、それらh
を呼び出しましょう。v
私が生成したい結果はこれです:
0 1 2
3 4 5
6 7 8
インデックスを示す 1D 配列の値を指定するh
と、 と も指定v
されます。この場合、どちらも 3 です。2D 配列でインデックスを生成する方法はありますか?
たとえば、1D 配列の最初の要素は 0 で、これは にマップされarray[0][0]
ます。2 番目の要素は 1 で、これはarray[0][1]
を実行することで垂直方向のインデックスを取得できることがわかりましたarray1d[i] mod vertical_size
。
for getting the vertical index ::: th
0 = [0][0] 0 mod 3 = 0 1 = [0][1] 1 mod 3 = 1 2 = [0][2] 2 mod 3 = 2
3 = [1][0] など... 4 = [1][1] 5 = [1][2]
6 = [2][0] 7 = [2][1] 8 = [2][2]
しかし、水平インデックスを取得する方法がわかりません。