我有一个可能很愚蠢的问题,但我试图使用boost :: multi_array定义一个8x3数组(每行是一个3 xyz-indices of a cell的数组,总共有8个单元格)。我的问题是,有没有比这样输入[DIM] 8倍更简单/更简单的方法:
static const int DIM = 3;
static const int CELL = 8;
boost::multi_array<double, CELL> ii(boost::extents[DIM][DIM][DIM][DIM][DIM][DIM][DIM][DIM]);
声明我的数组?万分感谢!
答案 0 :(得分:1)
boost::extents
只是一个生成器,您可以使用任何兼容的ExtentList模型来代替¹:
boost::array<size_t, 8> dims;
std::fill(dims.begin(), dims.end(), DIM);
您可以想象编写自己的模型,不需要每个维度的后备存储。
¹见http://www.boost.org/doc/libs/1_63_0/libs/utility/Collection.html