了解Boost MultiArray参数

时间:2011-05-12 13:35:58

标签: c++ templates boost boost-multi-array

这来自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时才会编译。

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]);