【发布时间】:2012-12-11 23:48:54
【问题描述】:
在给定维数和每个变量的大小的情况下,如何迭代 n 维数组?
int n;
int size[n];
由于维数不固定,我无法为每个维写一个嵌套循环。我需要代码来处理每个维度的数量。
此外,实际数据存储在 n 维数组或包含大行中所有数据的平面数组中并不重要。两者都可以接受。
int data[16][42][14]; // n-dimensional array
int data[16 * 42 * 14]; // flat array containing the same data
【问题讨论】:
-
你想用这些
n-dimensions做什么?我想你需要知道这一点,因此你也知道维度的数量...... -
维数不同,你说?这似乎很难解决,因为您需要知道维度的数量才能知道下面每个维度的大小。我没试过,但我想你可以写一些可怕的递归代码来做到这一点......
-
维度的数量不同,但每个维度的大小是已知的。
-
“遍历数组”是什么意思?看看每个元素?查看每个元素及其索引?或者,就像阿米特的回答一样,只是遍历所有索引向量?如果是第一个,您可以迭代平面数组,首先将平面大小计算为 size[] 数组的乘积。
标签: arrays algorithm loops dimension