这一节主要是解释Eigen是如何与原始的C/C++内存进行交互的,在很多场合是非常有用的,如从外部库输入vector和matrix到Eigen。
一、简介有时候你可能有一个已经初始化了数组数据,但是你又想用Eigen库的计算功能,你有两种选择,要么拷贝,要么复用。Eigen将提供一个Map类来完成后者。
二、Map类及Map变量定义Map类模板参数与Matrix前三个一样:
Map
不过默认情况下只需要一个模板参数。为了构造这个Map变量,你需要提供两个信息:
- 一个指向矩阵系数的参数
- 矩阵、向量的形状
比如:
Map mf(pf,rows,columns);
这里pf是指向一个float 的数组指针。如果你想使用fixed大小的Map,则应该这么定义:
Map mi(pi);
pi是一个指向int的数组指针。
三、Map变量使用下面这个例子是展示如何与Matrix进行内存共享。
typedef Matrix MatrixType;
typedef Map MapType;
typedef Map MapTypeConst; // a read-only map
const int n_dims = 5;
MatrixType m1(n_dims), m2(n_dims);
m1.setRandom();
m2.setRandom();
float *p = &m2(0); // get the address storing the data for m2
MapType m2map(p,m2.size()); // m2map shares data with m2
MapTypeConst m2mapconst(p,m2.size()); // a read-only accessor for m2
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?