1

这是来自Boost 文档并且编译没有问题。

#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

4

3 回答 3

2

这是你需要多少个维度。

boost::extents[3][4][2] // we use 3 dimensions

因此,如果您更改此数字,则必须将此行更改为。

于 2011-05-12T13:38:32.073 回答
1

它是“数字维度”——即数组的维度数:三,因为您的boost::extents.

于 2011-05-12T13:39:38.640 回答
1

它是数组的维数:

你已经相应地改变了ctor调用:

array_type A(boost::extents[3][4]);
于 2011-05-12T13:46:19.947 回答