我正在查看来自 boost 的多维数组库,但我无法找到一种方法来在头文件中声明具有未定义形状的 multi_array 成员,如下例中的“ A ”:
类.h
std::size_t nX;
std::size_t nY;
std::size_t nZ;
boost::multi_array<double, 3> A;
稍后在源文件中将其实例化为一定大小:
类.c++
nX = 3
nY = 4
nZ = 2
A = boost::multi_array<double, 3>(boost::extents[nX][nY][nZ]);
但这给了我一个不等的形状错误。有什么办法可以做我正在尝试的事情吗?
最终,我需要一个成员容器来存储待定大小的三维数据。这boost::numeric::ublas::matrix
适用于二维没有问题,但现在我需要一些适用于三个维度的东西。
谁能告诉我 multi_array 类如何/是否可行,或者告诉我另一个可以代替的库?