我有一个 n 维 Boost.MultiArray 我初始化如下:
const int n=3, size=4; //# of dimensions and size of one dimension
boost::multi_array<char,n> arr;
boost::array<size_t,n> extents; //size of each dimension
extents.assign(size); //assign size to each dimension -> {{4, 4, 4}}
arr.resize(extents);
所以我有 4 行代码来获取 MultiArray,但我想在一行中完成。是否有任何简单的方法来生成具有 n 维的 MultiArray,每个维度都有size
长度(所以我可以写arr(samevaluearray(n,size))
)或者我错过了 MultiArray 的方便构造函数?
编辑:它应该在不依赖于某个 n 值的情况下工作,即arr({{size,size}}
只适用于n=2
.
由于可能不清楚:boost::multi_array<char,n>(boost::extents[4][4][4])
正确初始化一个 4x4x4 数组,但是每次n
在源代码中更改,每次初始化都必须手动更新,所以它不是一个选项。