【发布时间】:2012-08-15 14:57:41
【问题描述】:
我想写一个函数,它接受一个数组作为输入参数。 并且该函数应该打印数组的所有元素。
print_array(arr) { //print all the elemnts of arr. }
我不知道该怎么做。
我认为首先我们需要找出传递的数组是 1-D 还是 2-D 还是 3-D 等等...数组
因为,要打印以下元素:
1-D array, you need only 1 for loop. 2-D array, you need only 2 for loop. 3-D array, you need only 3 for loop.
但是,我不知道您将如何识别它的一维、二维或 N-D 数组。 请帮忙。
【问题讨论】:
-
如何修改函数签名如下:
print_array(type *array, int n_dimensions, int *dimensions)? -
我不能将维度作为函数中的参数。该函数将只接受数组的基地址作为其输入。并且由函数的开发人员来确定它是 1-D 还是 2-D 还是 3-D 数组......并且基于此,他必须打印它的所有元素。
-
@VikasChhipa:一旦数组转换为指针,就不可能恢复该信息。唯一的选择是将维度传递给函数,或者传递对数组的引用而不转换为指针,如 eq- 的答案。
-
gslice 是用 C++ 表示多维数组的标准方法。 cplusplus.com/reference/std/valarray/gslice
标签: c++ c multidimensional-array