这来自Boost docs并编译没有问题。
#include "boost/multi_array.hpp"
int main () {
// Create a 3D array that is 3 x 4 x 2
typedef boost::multi_array<double,3> array_type;
typedef array_type::index index;
array_type A(boost::extents[3][4][2]);
return 0;
}
我的问题是:第二个模板参数是什么?我从文档中不清楚这一点。此代码仅在设置为3
时才会编译。
答案 0 :(得分:2)
这是你需要多少维度。
boost::extents[3][4][2] // we use 3 dimensions
因此,如果您更改此号码,则必须将此行更改为。
答案 1 :(得分:1)
这是'数字维度'---即数组的维数:3,因为您boost::extents
上有三个下标。
答案 2 :(得分:1)
这是数组的维数:
您已相应更改了ctor电话:
array_type A(boost::extents[3][4]);