【发布时间】:2016-02-13 04:58:18
【问题描述】:
假设有以下代码:
cout<< sizeof(Eigen::Matrix<double, -1, -1 , 0 , 10, 10>)<<endl;
cout<< sizeof(Eigen::Matrix<double, -1, -1>)<<endl;
第一行输出 3664 字节,第二行输出 24 字节。
我试图理解为什么指定最大尺寸会导致这种情况?
计算机架构是 x64。
【问题讨论】:
标签: eigen
假设有以下代码:
cout<< sizeof(Eigen::Matrix<double, -1, -1 , 0 , 10, 10>)<<endl;
cout<< sizeof(Eigen::Matrix<double, -1, -1>)<<endl;
第一行输出 3664 字节,第二行输出 24 字节。
我试图理解为什么指定最大尺寸会导致这种情况?
计算机架构是 x64。
【问题讨论】:
标签: eigen
嗯,您可能犯了复制粘贴错误,因为正如预期的那样,我得到:
816
24
确实,正如 Eigen::Matrix 的文档中所解释的那样,在您的情况下,将编译时的最大大小指定为以下结构:
struct {
double data[10*10]; // 800 Bytes
long rows, cols; // 16 Bytes
};
【讨论】: