У меня есть 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, но я хотел бы сделать это в одной строке.
Есть ли простой способ создать MultiArray с n измерениями, каждое из которых имеет size
длину (так что я могу написать arr(samevaluearray(n,size))
) или я пропустил удобный конструктор для MultiArray?
Edit: Это должно работать без зависимости от определенного значения n, т.е. arr({{size,size}})
будет работать только для n=2
.
Поскольку это может быть непонятно: boost::multi_array
правильно инициализирует массив 4x4x4-array, но каждый раз, когда n
изменяется в исходном коде, каждую инициализацию приходится обновлять вручную, так что это не вариант.