我有二维数组,并希望将其转换为一维数组。
二维数组是:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16到一维数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16如何在一维数组中访问元素号6的最近邻,以便在访问2D数组时获得相同的结果,例如
1 2 3
5 6 7
9 10 11在C++?
发布于 2011-10-22 19:57:17
如果您有一个2D数组,它是由M项长到高的N项,那么您需要一个具有M*N元素的一维数组。
当试图查找元素x的邻居时
left(x) = (x - 1) % M
right(x) = (x + 1) % M
above(x) = (x - M) % (M * N)
below(x) = (x + M) % (M * N)请注意,上面的解决方案使数组的底部和顶部相邻,以及右侧边缘和左侧边缘。要消除这种情况,只需省略模块化的数学,并检测索引何时已经超出了右/左/上/下边缘。
https://stackoverflow.com/questions/7862190
复制相似问题