当我们谈论数组时,什么是“维度”的意思?
我理解这个概念。但答案是什么呢?
例如,int array[5];
我知道,这是一个1D数组。它在索引中有1个下标。但为什么它被称为1维数组?为什么不是1下标数组?
当我们谈论数组时,什么是“维度”的意思?
我理解这个概念。但答案是什么呢?
例如,int array[5];
我知道,这是一个1D数组。它在索引中有1个下标。但为什么它被称为1维数组?为什么不是1下标数组?
XXXXXXXX你可以用一个下标索引到它,例如
array[n]
。XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX你需要用两个下标来索引它,例如
array[x,y]
。a[10][5]
是一个具有两个维度的数组:大小为10和大小为5。您需要两个下标或关键字来寻址其元素。一个下标必须在0到9之间,包括0和9;另一个下标必须在0到4之间。维度在数组中的应用方式与笛卡尔坐标系几乎相同。维度表示一个数组可以在多少个轴上增长。例如:
int A[5] is one dimentional, all elements are access by one index
int A[5][5] is two dimentional. Element are aligned along x and y plane.
int A[5][5][5] is three diminutional, elements are aligned in 3D space.
int A[5][5][5][5]
这基本上意味着它可以向四个方向生长。可以将其视为
[5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]
[5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]
[5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]
[5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]
[5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]
这是一个由5个元素组成的3D数组A[5][5][5]。在上面的例子中,它只是A[0][5][5][5]中的第0个元素。
我很难理解不同维度的概念以及它们如何展开。
因此,在阅读了Sergey的回复和Microsoft关于数组的文档后,我想出了以下脚本来进行可视化:
Sub Main()
Worksheets("Sheet1").Range("A1", "AK127").Clear ' Cleaning the array range
For i = 1 To 3
For j = 1 To 4
For k = 1 To 5
Worksheets("Sheet1").Cells(1, ((k - 1) * 5) + 1).Offset((i), (j)).Value = i & "+" & j & "-" & k ' Assigning numbers
Worksheets("Sheet1").Cells(1, ((k - 1) * 5) + 1).Offset((i), (j)).Interior.Color = RGB(255 / j, 155, 150) ' Assigning colors
Next k
Next j
Next i
End Sub
它将输出5个带有颜色方案的3×4阵列(i乘j)块(k1到5)。
我希望这是一个有用的可视化。可以尝试调整数字或i,j,k参数来查看它们如何改变外观。
多维数组是允许其成员也是数组的数组。例如:
a = [1, 2, 3]; // 单维数组 b = [7, 8, 9]; // 单维数组
c = [a, b]; // 多维(2维)数组。一个数组的数组。
现在c[0]被分配为数组a作为其元素,c[1]是b。可以像这样访问多维数组的成员:
c[0][0](在这种情况下将是a[0],即1...) c[1][2](在这种情况下将是b[2],即9...)