【发布时间】:2012-04-26 10:37:20
【问题描述】:
vector<bool> working_lattice(box.rect.length * box.rect.height * box.rect.width);
如何使用上述声明方式访问working_lattice[1][5][3]?
【问题讨论】:
-
我知道它看起来更像
working_lattice[? * ? * ? + ?]。但是怎么做呢? -
暂时忽略与
vector<bool>相关的奇怪之处,我展示了一个3D 矩阵,您可以使用matrix[a][b][c]符号在old answer 中访问它。目前,它将大小作为模板参数传递,但将其作为 ctor 参数传递并不需要很大的数量。如果我今天写它,我无疑会使用std::vector而不是实际的 3D 数组,这样将大小传递给 ctor 就变得很简单了。 -
三个嵌套向量也将存储为一个连续的内存块,因为每个向量本身都存储在一个连续的内存块中。这也可以让机器做乘法工作,为你计算出偏移量。
标签: c++ multidimensional-array arrayaccess integer-arithmetic