我有一些数据以多维数组的形式结构化,例如
例如,我可能有一个3×5的多维数组,我需要将其作为15个元素的平坦数组传递,同时传递高度和宽度参数,以便函数知道它是一个3x5的数组而不是一个5x3的数组。
然后,该函数将返回一个平坦数组和大小元数据,我需要使用这些数据将数据转换回多维类型。
我相信在内存中,平坦和多维表示法的数据布局完全相同。唯一的区别在于执行索引操作的方式不同。因此,我想通过类型转换而不是复制数组值来进行“转换”。
对于相同总大小的多维数组和平坦数组之间的类型转换,最正确且易读的方式是什么?
我实际上知道编译时多维数组的维度。数组大小不是动态的。
double[][]
,我需要将其传递给一个函数,该函数期望一个单一的线性数组double[]
和多维表示法的维度元数据。例如,我可能有一个3×5的多维数组,我需要将其作为15个元素的平坦数组传递,同时传递高度和宽度参数,以便函数知道它是一个3x5的数组而不是一个5x3的数组。
然后,该函数将返回一个平坦数组和大小元数据,我需要使用这些数据将数据转换回多维类型。
我相信在内存中,平坦和多维表示法的数据布局完全相同。唯一的区别在于执行索引操作的方式不同。因此,我想通过类型转换而不是复制数组值来进行“转换”。
对于相同总大小的多维数组和平坦数组之间的类型转换,最正确且易读的方式是什么?
我实际上知道编译时多维数组的维度。数组大小不是动态的。
double a[5][5]
数组,那么a[8]
应该返回a[1][3]
的值)。 - wohe1