C++ 指定boost::multi_数组中所有数组的长度

C++ 指定boost::multi_数组中所有数组的长度,c++,arrays,boost,boost-multi-array,C++,Arrays,Boost,Boost Multi Array,我有一个可能很愚蠢的问题,但我正在尝试使用boost::multi_数组定义一个8x3数组(每行是一个单元格的3个xyz索引的数组,总共有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][DI

我有一个可能很愚蠢的问题,但我正在尝试使用boost::multi_数组定义一个8x3数组(每行是一个单元格的3个xyz索引的数组,总共有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]);
static const int DIM=3;
静态常数int CELL=8;
boost::multi_阵列ii(boost::区段[DIM][DIM][DIM][DIM][DIM][DIM][DIM][DIM][DIM][DIM]);

声明我的数组?非常感谢

boost::extensts
只是一个生成器,您可以使用任何兼容的extenstlist模型,而不是ª:

boost::array<size_t, 8> dims;
std::fill(dims.begin(), dims.end(), DIM);
boost::阵列dims;
填充(dims.begin(),dims.end(),DIM);
可以想象,您可以编写自己的模型,而不需要每个维度的备份存储

看到了吗