我有一个3维数组,如int [256] [256] [256]。现在我在这个数组中有一个特定的点,如182,12,194。我需要迭代最近的邻居,按照欧几里得距离排序到这一点。例如:
182,12,194它将迭代如下:
等等。
实现这一目标的最简单方法是什么?
答案 0 :(得分:0)
如果你只有3个维度,那么你可以用3个嵌套循环来完成:
void iterate(int x, int y, int z) {
int r = 1;
for (int dx=-r; dx<=r; dx++) {
for (int dy=-r; dy<=r; dy++) {
for (int dz=-r; dz<=r; dz++) {
array[x+dx][y+dy][z+dz] = ...
}
}
}
}
(r
代表&#34; radius&#34;,对于你勾画的情况,这是1。
对于更高(或可变数量)的维度,需要一些更复杂的解决方案。