【发布时间】:2010-03-06 02:13:20
【问题描述】:
假设我声明了这一点:
int [a][b][c];
a 代表级别/页面,b 代表行,c 代表列吗?
或者它可以是我想要的任何东西,即 a 代表列,b 代表页面,c 代表行(因为数据只是数据,并且可以以任何方式抽象出一个立方体)?
【问题讨论】:
-
它们可以代表任何你想要的东西,以任何顺序。
-
C++ 是行优先的怎么办?这有效果吗?
-
但是考虑一下典型用法并相应地优化设计。例如,在 C、C++ 和其他语言中,N 维内存很可能被分配为连续的一维数组。因此,在迭代此数组时,您需要牢记内存分页和 MRU 缓存。希望有人能比我更好地解释这一点。
-
@Brandon,这并不意味着什么——在 C/C++ 中,只有一维数组。多维数组只是数组的数组,它们不是某种特殊类型,就像在其他环境中一样。
-
@Brandon,是的 row-major-ism 将/可以影响您的数据访问/检索/修改的性能。好问题。
标签: c++ multidimensional-array