有人能告诉我到底如何迭代 Eigen::RowVectorXf 吗?
我在网上和文档中查找了 3 个小时,我所能找到的只有 from this link我可以通过以下方式访问它:
vector(i)
vector[i]
我有一个:
auto vec = std::make_shared<Eigen::RowVectorXf>( rowIndex.size() );
我想用词频填充它。
Eigen::RowVectorXf::InnerIterator it(vec); it; ++it
不起作用,并且
Eigen::RowVectorXf::Iterator it(vec); it; ++it
不存在。
唯一似乎有效的是:
for ( int i = 0; i < vec->row( 0 ).size(); i++ )
{
std::cout << vec->row( 0 )[i] << std::endl;
}
恕我直言,这似乎很奇怪,因为我不必明确指向 row(0),因为这是一个 RowVector。
有没有更干净、更快或更优雅的方式?
最佳答案
不需要 row(0),您可以使用 ->coeff(i)(不推荐,因为它会跳过断言,即使在 Debug模式下),也可以使用 operator* 取消引用您的 shared_pointer
:
for(int i=0; i<vec->size(); ++i)
cout << (*vec)[i];
您也可以使用 InnerIterator,但您必须取消引用您的 shared_pointer
:
RowVectorXf::InnerIterator it(*vec); it; ++it
关于c++ - Eigen::RowVector 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824977/