2011-05-12 60 views
1

這是來自Boost docs並且編譯沒有問題。瞭解Boost MultiArray參數

#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時纔會進行編譯。

回答

2

這是你需要多少維度。

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

所以,如果你改變這個數字,你必須改變這一行。

1

它是'數字維度'---即數組的維數:3,因爲您的boost::extents上有三個下標。

1

正是數組的維數:

你必須改變相應的構造函數調用:

array_type A(boost::extents[3][4]);