joh*_*nny 40 multidimensional-array
如果我想到x,y坐标平面x,y是有序对的常用符号,但如果我使用二角形数组,我有myArray [row] [col],行是y,col是x .这是倒退还是我只是想错了?我认为它看起来像myArray [x] [y],但如果我想要真正的行和列(如游戏板中)那就错了.难道不是myArray [y] [x]真正模仿行列板?
Joh*_*ler 34
你做对了,确实感觉有些倒退.行号是y坐标,列号是x坐标,但我们通常写row,col但我们通常也写x,y.
是否要将数组编写为[y] [x]取决于或[x] [y],主要取决于您实际关心内存中的布局(如果使用的话,使用的是哪种语言).以及是否要编写可以独立操作行或列的函数/方法.
如果您正在编写C/C++代码,则数组存储在行主顺序中,这意味着可以将单行数据视为一维数组.但是单列数据却不行.如果我没记错的话,VB会使用列主要顺序,因此语言会有所不同.我很惊讶C#也不是主要的排序,但我不知道.
这就是我为自己的理智所做的:
int x = array[0].length;
int y = array.length;
Run Code Online (Sandbox Code Playgroud)
然后对于我进行的每个数组调用,我写:
array[y][x]
Run Code Online (Sandbox Code Playgroud)
这对于图形算法和水平/垂直矩阵翻转特别有用。