我遇到了一个问题,我想将一个
std::vector<Eigen::Vector3d>
转换为一个std::vector<Eigen::Vector3f>
。 我想知道是否有一种解决方法,不必迭代处理这些点。// mapping using iteration
std::vector< Eigen::Vector3d> tf{ {1,1,1},{1,1,1},{1,1,1} };
std::vector< Eigen::Vector3f> tf2;
tf2.reserve(tf.size());
std::transform(tf.begin(), tf.end(), std::back_inserter(tf2), [](const Eigen::Vector3d& p) {
return p.cast<float>();
});
我尝试了一些类似于tf.data()
的东西,并尝试了转换,但我没有找到解决方案。我还研究了Eigen::Map<>
类,但并没有真正找到解决方案。
std::transform
可以隐藏迭代。 - Kao