今天看ORBSLAM2中的OptimizeEssentialGraph()函数时,对一句代码中的aligned_allocator不太清楚:

vector<g2o::Sim3,Eigen::aligned_allocator<g2o::Sim3> >

百度查找了一些资料,记录如下:

如果STL容器中的元素是Eigen的数据结构,例如这里定义一个vector容器,元素是Matrix4d ,如下所示:

vector <Eigen::Matrix4d>;

编译不会出错,但在运行的时候出错。解决的方法很简单,定义改成下面的方式:

vector<Eigen::Matrix4d,Eigen::aligned_allocator<Eigen::Matrix4d>>;

其实上述的这段代码才是标准的定义容器方法,只是我们一般情况下定义容器的元素都是C++中的类型,所以可以省略,这是因为在C++11标准中,aligned_allocator管理C++中的各种数据类型的内存方法是一样的,可以不需要着重写出来。但是在Eigen管理内存和C++11中的方法是不一样的,所以需要单独强调元素的内存分配和管理。

最新文章

  1. [Cordova] Plugin开发入门
  2. offsetleft、offsetTop、offsetParent的兼容性问题
  3. netty概念
  4. Entity Framework学习笔记(四)----Linq查询(1)
  5. html5 标签
  6. time_t转换为DateTime
  7. jquery判断对象是否获得焦点
  8. Warning File `.depend&#39; has modification time 1.6 s in the future
  9. yarn资源调度(网络搜集)
  10. mysql数据库主从备份
  11. 用CSS实现响应式布局
  12. JavaScript入门(三)
  13. hashtable 简单介绍
  14. 把一个syn报文给rst掉
  15. 团队项目Alpha冲刺阶段之学习总结
  16. 如何使用向量代表文档doc或者句子sentence
  17. 树莓派挂载ntfs优盘
  18. 奇葩字符 &quot;a๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎&quot; 的简单分析
  19. c++ list set 方法集合
  20. python3【基础】-装饰器

热门文章

  1. Textarea随着文本的字数自适应高度,后来发现用 contenteditable 代替textarea 效果更佳
  2. for循环性能测试
  3. springboot日期转换器
  4. HTML中的marquee标签实现滚动效果
  5. Serverless 实战 —— 函数计算 + Typescript 实践
  6. mysql Alias操作符 语法
  7. makefile 赋值
  8. 上传文件报413 Request Entity Too Large错误解决办法
  9. Mac下配置神器PhpStrom开发环境
  10. Otto