【发布时间】:2015-05-13 02:01:07
【问题描述】:
对于 C++,我看到了一些使用 2D 数组的建议,如下所示:
int* theArray = new int[d1 * d2];
然后可以按如下方式访问元素 (i, j):
int myInt = theArray[i + d2 * j];
我有两个问题:第一,如何访问 3D 数组?有通用公式吗?其次,更重要的是,如果我使用函数会不会有性能损失
int getNumber(int i, int j, int k)
void setNumber(int i, int j, int k, int theValue)
检索和设置号码?我不想在代码中的某个地方搞砸它,然后永远寻找搞砸的地方。
【问题讨论】:
-
索引是
i + d2*j + d2*d3*k,但这是一道基本的数学题,不是编程题。 -
顺便说一句,这取决于尺寸顺序。
-
因为这被标记为
array,所以我只需要回答:使用std::array,如果需要运行时大小设置,std::vector。只有在分析之后才能进一步优化。
标签: c++ arrays optimization