如果STL容器中的元素是Eigen庫資料結構,例如這裡定義一個vector容器,元素是Matrix4d,如下所示:
vector<Eigen::Matrix4d>
這個錯誤也是和上述一樣的提示,編譯不會出錯,只是在執行的時候出錯,只有在執行的時候出錯,
解決的方法很簡單,定義改成下面的方式:
vector<Eigen::Matrix4d,Eigen::aligned_allocator<Eigen::Matrix4d>>;
其實上述的這段程式碼才是標準的定義容器方法,只是我們一般情況下定義容器的元素都是C++中的型別,
所以可以省略,這是因為在C++11標準中,aligned_allocator管理C++中的各種資料型別的記憶體方法是一樣的,
可以不需要著重寫出來。但是在Eigen管理記憶體和C++11的方法是不一樣的,所以需要單獨強調元素的記憶體分配和管理。
Eigen::aligned_allocator
相關文章
- Eigen
- Eigen教程(9)
- Eigen備忘錄
- Eigen庫的安裝
- CMake、Eigen、Ceres版本檢視
- 2.2 視覺SLAM 實踐:Eigen視覺SLAM
- Eigen:矩陣計算簡單用法(一)矩陣
- Eigen:矩陣計算簡單用法(二)矩陣
- 矩陣旋轉-Eigen應用(QTCreator編輯器)矩陣QT
- Eigen教程(3)之矩陣和向量的運算矩陣
- python3 通過 pybind11 使用Eigen加速程式碼Python
- CMake構建學習筆記9-Eigen庫的構建筆記
- QT creator中cmake管理專案,如何引入外部庫(引入Eigen庫為例)QT
- PCL(Point Cloud Library)的第三方庫簡介(boost,eigen,flann,vtk,qhull)Cloud