好吧,我有一个数组A [4] [4],和另一个A [16],这两个都是彼此不同的表示。现在,我得到了二维数组上的元素位置,但我必须从1D数组中访问它。 IE,如果我被告知访问我的一维数组中的元素A [2] [0],我该怎么做?二维和一维阵列之间
0
A
回答
0
这取决于您的编程语言和阵列类型的选择。对于不同的语言,数组要么保存在row-major order or column-major顺序:
编辑:Java没有多维数组,按该documentation:在Java中,多维数组的结构数组的数组,即其元素是对数组对象的引用的数组。这意味着每行可以有不同的长度,因此存储格式既不是行大也不是列大。
行优先顺序在C/C++,PL/I,Python和Speakeasy的和其他人使用。列主要顺序用于Fortran,MATLAB,GNU Octave,R,Julia,Rasdaman和Scilab。
在一些语言中,你也可以选择顺序(如MATLAB)
对于row-major order,A[2][0]
将在A[2*4+0]
(其中4是一个行的大小):
偏移=行* NUMCOLS +柱
对于column-major order,A[2][0]
将处于A[0*4+2]
(其中4是一列的大小):
偏移=行+列* numRows行
这真的取决于你的编程语言!
0
在这个简单的例子中,A[2][0]
映射到A[8]
,因为您正在请求第三组四个中的第一个元素。同样,A[0][2]
映射到A[2]
,因为您正在请求第一组四个中的第三个元素。一般来说(A[i][j]
)您正在请求A
的(i * 4 + j)个元素。
在更一般的情况下,您正在请求(i * width + j)个元素。
相关问题
- 1. 从二维阵列到一维阵列?
- 2. 二维NSMutable阵列和一些思维的NSMutable阵列
- 3. 二维阵列
- 4. 二维阵列
- 5. 二维阵列
- 6. 二维阵列
- 7. 匹配二维阵列与一个二维阵列
- 8. 一维到二维阵列的javascript
- 9. 二维阵列在一个维度[1]
- 10. 总和二维阵列
- 11. 从二维阵列
- 12. 二维阵列VB
- 13. 二维阵列C#
- 14. 二维阵列和一个JButton
- 15. Python的转化一个维阵列成二维阵列
- 16. 将一维字节阵列转置为二维阵列
- 17. 二维阵列和网格之间的Android映射
- 18. F#类型结合一维和二维阵列
- 19. 二维阵列列表java
- 20. C:二维阵列和正常阵列相同的大小之间的差异
- 21. 二维区间矩阵
- 22. 从三维单元阵列转换为一组二维矩阵
- 23. 将两张二维阵列到另一个阵列二维的Java
- 24. 排序二维阵列基于一列
- 25. 将二维numpy阵列转换为二维numpy矩阵
- 26. 无法从二维阵列
- 27. 二维int阵列shuffle
- 28. C++二维char列阵
- 29. 字符串二维阵列
- 30. 二维阵列误差
在java中这样做,所以行主要。我明白了,非常感谢! – rhl13
你不能在Java中这样做,请参阅上面的更新答案。 – jmiserez
在我看来,调用内存布局“row-major”或“column-major”[会导致混乱](http://stackoverflow.com/questions/17717600/confusion-between-c-and-opengl-matrix-order -row-major-vs-column-major/17718408#17718408),因为存储在数组“行”中的数据不一定代表行。 – SigTerm