C++中eigen类型的容器定义方法

16 篇文章 1 订阅
11 篇文章 1 订阅

C++中eigen类型的容器定义方法

一般容器定义

vector<int> int_1;
vector<double> double_1;
vector<float> float_1;
vector<char> char_1;
vector<bool> bool_1;

一般容器的定义这样声明即可,通过push_back向容器中压入数据,通过迭代器访问容器的内容。

eigen类型的容器定义

我们可以尝试像int/double/float/char/bool等类型一样定义eigen类型容器,如下所示:

<vector<Eigen::Matrix3d> Mat_3d;

但可以发现如此定义编译的时候不会报错,但运行的时候会有错误提示。
那么是为什么呢?

问题解决

其实只要把eigen容易的定义语句改为以下形式即可:

vector<Eigen::Matrix3d,Eigen::aligned_allocator<Eigen::Matrix3d>> Mat_3d;
  • 上述的这段代码是C++容器的标准定义方式。

  • 只是我们一般情况下定义容器的元素都是C++中的类型,所以可以省略,这是因为在C++11的标准中,aligned_allocator管理C++中的各种数据类型的内存方法是一样的,可以不需要着重写出来。

  • 但是在Eigen管理内存和C++11中的方法是不一样的,所以需要单独强调元素的内存分配和管理。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隔壁老王的学习日志

创作不易、球球大家打赏一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值