在讨论数组时,“维度”是什么意思?
我理解这个想法。但是答案是什么呢?
例如,int array[5];
我知道,这是一维数组。它在索引中有1个下标。但为什么它被称为1维数组呢?为什么不是1个下标数组?
答案 0 :(得分:9)
我们说“维度”,因为这是这类事情的总称。想想我们的世界,例如:它有三个容易观察的尺寸(宽度,高度,深度)。或者想到几何:一个点有零维度,一个线有一个,一个平面有两个,一个立方体有三个等等。这个术语适用于数组,因为它精确地描述了与数组相关的东西。数组的维数是它有多少轴。
一维数组有一个轴,如一行:
XXXXXXXX
使用一个下标对其进行索引,例如: array[n]
。
二维数组有两个轴,如平面:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
您使用两个下标对其进行索引,例如: array[x,y]
。
我不会尝试使用ASCII艺术来表示3维数组(如立方体)。 : - )
答案 1 :(得分:4)
“数组的维度”是指定数组的单个元素所需的索引或下标数。
尺寸和下标可能令人困惑。下标是数字(或其他类型的关联键),而维度是可接受键范围的描述;你需要为数组的每个维度提供一个下标。
例如,在C / C ++中,a[10][5]
是一个具有两个维度的数组:大小为10且大小为5.您需要两个下标或键来处理其元素。一个下标必须在0到9之间,包括0和9;另一个下标介于0和4之间。
答案 2 :(得分:1)
最简单的思考方式是数组的维度是类型后面的方括号的数量:
int []是单维数组,int [] []是2维数组,等等。
有时,如果您将数组视为多维绘制图形,则会很有帮助。 1-d阵列只是一条线,在图中有1个轴。 2-d数组是一个表,如果要绘制它(x,y),它有两个轴。 3d数组是一个立方体,有3轴(x,y,z)。
答案 3 :(得分:1)
尺寸几乎以相同的方式应用于数组,因为它不是笛卡尔坐标系。尺寸表示阵列可以生长多少轴。实施例
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.
随着3D的成长,视觉变得困难。一个4d阵列就像这样
int A[5][5][5][5]
这基本上意味着它可以在4个方向上生长。它可以显示为
[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]的5个元素。在上面的例子中,它只是A [0] [5] [5] [5]
的第0个元素答案 4 :(得分:0)
多维数组也允许其成员成为数组。例如:
a = [1,2,3]; //单维数组 b = [7,8,9]; //单维数组
c = [a,b]; //多维(二维)数组。数组数组。
所以现在c [0]被赋予数组a作为其元素,而c [1]是b。可以处理多维数组的成员,例如:
c [0] [0](在这种情况下为[0],或1 ... c [1] [2](在这种情况下为b [2],或9 ...