n维c ++数组.怎么可能?

Pat*_*sut 4 c++ matrix multidimensional-array

当GCC允许我这样做时,我感到很困惑:

int t[10][10][10][10][10];
Run Code Online (Sandbox Code Playgroud)

我意识到这int i[N][N]是一个NxN矩阵,第一个N表示行,第二个表示列.而且,第三Nint i[N][N][N]装置深度,给我们一个3D维阵列.

我不明白什么是int i[N][N][N][N]超越意味着什么.

第四个维度是时间,但这不适用于此.

那么,这是否意味着当我到达第三个时,我可以让逻辑消失?

das*_*ght 27

我发现库类比对于可视化多维数组非常有用:

  • 8维数组是一个库
  • 7维数组是库中的地板
  • 六维阵列是图书馆地板上的一个房间
  • 五维阵列是图书馆地板上的一个书架
  • 四维阵列是图书馆地板上的书房中的书架
  • 三维阵列是在图书馆的地板上的书房中的书架上的书
  • 二维数组是图书馆地板上的书房中书架上的书中的页面
  • 一维数组是图书馆中地板上的书房中书架上的书中的一行
  • 0维数组是图书馆地板上的书架中书架上书架上的一行中的字符


jra*_*rad 10

在数学世界中,维度的数量无关紧要.它最终会达到一个人们无法再将其可视化的程度.


R. *_*des 8

尺寸正是您想要制作的尺寸.例如,深度和时间只有在处理这些概念时才有意义.

它不一定是空间和时间.实际上,C++标准称它们为范围.

假设您有十种不同的奶酪,并且您希望评估某人喜欢某种特定顺序的可能性.你可以将它存储在你的int t[10][10][10][10][10];,具有范围意义,分别是:最喜欢的奶酪,第二喜欢的奶酪,第三喜欢的奶酪,第四喜欢的奶酪,第五喜欢的奶酪,以及最不喜欢的奶酪.有人喜欢按照5-4-6-3-2-1的顺序选择奶酪的可能性表示为t[5][4][6][3][2][1].

关键是,语言不会将区域语义附加到范围.这取决于你这样做.