Eigen::Vector3f 转std::vector<float>
时间: 2023-07-20 21:24:48 浏览: 255
Eigen入门之密集矩阵 1 — 类Matrix介绍
可以使用Eigen库自带的Map函数将Eigen::Vector3f对象转换为std::vector<float>类型,代码如下:
```c++
#include <iostream>
#include <vector>
#include <Eigen/Core>
int main()
{
Eigen::Vector3f vec3f(1.23f, 2.34f, 3.45f);
std::vector<float> vec;
vec.resize(3);
Eigen::Map<Eigen::Vector3f>(&vec[0]) = vec3f;
for (auto i : vec)
{
std::cout << i << ", ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1.23, 2.34, 3.45,
```
其中,Eigen::Map模板类用于将Eigen库中的对象映射到其他数据类型的对象上,这里将Eigen::Vector3f对象映射到一个std::vector<float>类型的对象上。注意,在使用Eigen::Map时,需要保证目标对象的内存空间已经分配,否则会引发未定义的行为。
阅读全文