【问题标题】:order of dimensions when creating multidimensional array创建多维数组时的维度顺序
【发布时间】:2012-08-13 05:15:35
【问题描述】:

new T[7] 创建一个包含 7 个Ts 的数组。如果我们用int[5] 替换T,我们得到new int[5][7],它应该创建一个由7 个5 个整数组成的数组。但是,它会创建一个包含 7 个整数的 5 个数组的数组。这有什么好的理由吗?如果反过来不是更有意义吗?

【问题讨论】:

  • 所有类 C 语言都使用row-major ordering。 Fortran 使用列专业。将其视为首先是最重要的维度
  • 我认为这个问题非常恰当,这是一个经常引起混淆的问题。这是我在 C++ 中避开“裸”多维数组的(许多)原​​因之一
  • 当您进行查找时,索引与维度的顺序相同,我认为这比其他方式更有意义。

标签: java arrays syntax multidimensional-array


【解决方案1】:

我认为它是维度:

   height width depth
int[5]    [7]   [8]

或者

   rows  cols
int[5]   [7]

这就是为什么它是 5 个 7 个整数的数组对我来说是有意义的。有一种自然规律。

我认为您的示例也很有道理,并且非常合乎逻辑。所以我想这只是一个意见问题:P

【讨论】:

    【解决方案2】:

    int ints [][] = new int [5][7]; 可以写成int [] ints [] = new int [5][7];,也许这会告诉你,它们是 5 个 7 个整数的数组是有道理的。 ;)

    【讨论】:

    • 这是真的吗?另外,我看不出它有什么帮助
    • 这是一个有趣的答案,我 +1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多