2016-02-12 129 views
0

說一個具有下面的代碼:本徵動態矩陣大小

cout<< sizeof(Eigen::Matrix<double, -1, -1 , 0 , 10, 10>)<<endl; 
cout<< sizeof(Eigen::Matrix<double, -1, -1>)<<endl; 

第一行輸出3664個字節,並且第二個,24個字節。

我想了解爲什麼指定最大尺寸的結果呢?

計算機體系結構是x64。

回答

1

HM,你可能做了複製粘貼錯誤,因爲,正如所料,我得到:

816 
24 

事實上,作爲Eigen::Matrix文檔中解釋,在編譯時量指定的最大尺寸,在你的情況,到以下結構:

struct { 
    double data[10*10]; // 800 Bytes 
    long rows, cols; // 16 Bytes 
};