我正在使用的代码Eigen http://eigen.tuxfamily.org/index.php?title=Main_Page矩阵库。我注意到在整个代码中,有如下访问器:
RowVector3f V(size_t vertex_index) const
{
return mymatrix.row(vertex_index);
}
使用返回 const ref 的访问器不是更好吗? Eigen 可能吗?或者也许只是将指向内部浮点数的指针返回到行开始并将其转换为向量(当然假设匹配行主布局)?
在 Eigen 中,mymatrix.row(vertex_index) 返回一个 Block(假设 mymatrix 是一个 Matrix3f)。 Block 对象本质上是指向原始数据的指针。在您的情况下,该代理被复制到 RowVector3f 中。幸运的是,对于如此小的固定大小对象,编译器将轻松优化掉这个额外的副本。所以我不会打扰。
在更一般的情况下,我会重写 V 方法以返回 MatrixXf::RowXpr (这是 Block<...> 的正确类型定义)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)