Eigen aligned_allocator
在使用Eigen的时候,如果STL容器中的元素是Eigen数据库结构,比如下面用vector容器存储Eigen::Matrix4f类型或用map存储Eigen::Vector4f数据类型时:
vector<Eigen::Matrix4d>;
std::map<
int
, Eigen::Vector4f>
编译能通过,当运行时会报段错误。
对eigen中的固定大小的类使用STL容器的时候,如果直接使用会出错,所谓固定大小(fixed-size)的类是指在编译过程中就已经分配好内存空间的类,为了提高运算速度,对于SSE或者AltiVec指令集,向量化必须要求向量是以16字节即128bit对齐的方式分配内存空间,所以针对这个问题,容器需要使用eigen自己定义的内存分配器,即aligned_allocator。
使用aligned_alloctor分配器,上面的例子正确写法为:
std::vector<Eigen::Matrix4d,Eigen::aligned_allocator<Eigen::Matrix4d>>
std::map<
int
, Eigen::Vector4f, Eigen::aligned_allocator<std::pair<
const
int
, Eigen::Vector4f>>
上述的这段代码才是标准的定义容器方法,只是我们一般情况下定义容器的元素都是C++中的类型,所以可以省略,这是因为在C++11标准中,aligned_allocator管理C++中的各种数据类型的内存方法是一样的,可以不需要着重写出来。但是在Eigen管理内存和C++11中的方法是不一样的,所以需要单独强调元素的内存分配和管理。
Eigen aligned_allocator相关推荐
- Eigen::aligned_allocator
如果STL容器中的元素是Eigen库数据结构,例如这里定义一个vector容器,元素是Matrix4d ,如下所示: vector<Eigen::Matrix4d> 这个错误也是和上述一样 ...
- Eigen内存分配器aligned_allocator
在使用Eigen的时候,如果STL容器中的元素是Eigen数据库结构,比如下面用vector容器存储Eigen::Matrix4f类型或用map存储Eigen::Vector4f数据类型时: vect ...
- Eigen向量化内存对齐/Eigen的SSE兼容,内存分配/EIGEN_MAKE_ALIGNED_OPERATOR_NEW
1.总结 对于基本数据类型和自定义类型,我们需要用预编译指令来保证栈内存的对齐,用重写operator new的方式保证堆内存对齐.对于嵌套的自定义类型,申请栈内存时会自动保证其内部数据类型的对齐,而 ...
- Eigen有哪些需要注意的操作
Eigen有哪些需要注意的操作 Eigen有哪些需要注意的操作 1. Eigen有哪些行操作,列操作,块操作,怎样写会更高效? 2. ColMajor和RowMajor是什么?Eigen默认的是哪种? ...
- aligned_allocator
如果STL容器中的元素是Eigen库数据结构,例如这里定义一个vector容器,元素是Matrix4d ,如下所示: vector<Eigen::Matrix4d>; 这个错误也是和上述一 ...
- 【Eigen】【Eigen实践】【Eigen的使用学习记录】
[Eigen][Eigen实践][Eigen的使用学习记录] 0 前言 1 Eigen使用 1.1 头文件的使用 1.2 定义和初始化 1.2.1 定义n*m矩阵 1.2.2 定义n*1向量 1.2. ...
- Eigen 内存对齐
https://eigen.tuxfamily.org/dox/group__TopicStlContainers.html 这个上面已经说的很清楚了,如果使用现代c++特性,对齐问题无需考虑 htt ...
- Eigen GO Ceres
1.Eigen 1)Eigen只用到头文件,所以要确保编译器的搜索路径里包含头文件的路径,/usr/local/include/ /usr/include/eigen3/ 2)定义一个矩阵或向量有两种 ...
- 【Eigen】基本和常用函数
文章目录 简介 找不到头文件 Eigen 中矩阵的定义 Eigen 中矩阵的使用方法 Eigen 中常用矩阵生成 Eigen 中矩阵分块 Eigen 中矩阵元素交换 Eigen 中矩阵转置 Eigen ...
最新文章
- String 字符串对象
- AI打AI,人脸对抗攻击公开课第四讲预告:对抗防御介绍
- Python PyCharm利用PyQt5使QPlainTextEdit支持拖放文件,类提升,重写QPlainTextEdit类
- 迅雷精简版-纪念走过的时光
- 应用Composite模式
- 微信公众号推送模板信息
- 用神经网络实现手写数字识别
- 信息系统集成监理费收取标准_信息系统工程监理与咨询服务收费参考标准起草说明...
- 如何用计算机克数和斤换算,质量(重量)单位换算计算器
- 改进YOLOv5!GSConv+Slim Neck进一步提升YOLOv5性能!
- 东南大学计算机考研面试题,东南大学复试常问问题今天的模拟面试总结
- arm-linux-objdump -D -m arm led_elf led.dis 是什么意思?
- 从《我不是潘金莲》谈程序员的核心竞争力
- 左神算法:如何较为直观地打印二叉树(Java版)
- SIGGRAPH Asia 2022 | 港中文MMLab:Marker Correspondence估计框架和应用
- 【荐书】C程序设计语言(第二版)
- 微信二维码识别、微信数据分析
- html mailto 不起作用,HTML Mailto 使用手记
- OpenCV-Python 调节摄像头分辨率及窗口位置大小
- socket读写返回值的处理
热门文章
- 实习生也容易上手的ui框架
- 回归中的相关度和决定系数
- ſ xf(sinx)dx 中的f(sinx)到底是什么
- 姜小白的python日记Day4 列表和元组
- 站内信系统数据库设计
- 区分gym中的gym.make()函数与gym.vector.make()函数
- matlab模拟塞曼图谱,塞曼效应理论与实验分析.doc
- 浅谈sklearn中DBSCAN的欧式距离(Euclidean Distance)的计算
- 【JPress】Template
- 怎么格式化云服务器,云服务器磁盘怎么格式化