我有一个二维数组,我想用一维索引访问它的元素。
数组长度不同。 row
不尽相同,但col
始终为8(Array[varies, 8]
)
查看this question and its answers ,我似乎无法正确访问元素。
这就是我想要使用一个索引访问元素的方式:
0 = (0, 0) 8 = (1, 0) 16 = (2, 0)
1 = (0, 1) 9 = (1, 1) 17 = (2, 1)
2 = (0, 2) 10 = (1, 2) 18 = (2, 2)
3 = (0, 3) 11 = (1, 3) 19 = (2, 3)
4 = (0, 4) 12 = (1, 4) 20 = (2, 4)
5 = (0, 5) 13 = (1, 5) 21 = (2, 5)
6 = (0, 6) 14 = (1, 6) 22 = (2, 6)
7 = (0, 7) 15 = (1, 7) 23 = (2, 7)
在此示例中,我的数组为3x8
。根据公式:
row = index % 8;
col = index / 3;
对索引13
说,它将是:
row = 13 % 8 = 5 >> correct
col = 13 / 3 = 4 >> incorrect
那么我在这里缺少什么?
答案 0 :(得分:2)
尝试以下方法:
col = index / 8
你应该对mod和div使用相同的除数(在本例中为8)。这样,它们是同步的。
在您的示例中,
col = 13 / 8 = 1