Eigen是一个很棒的代数/矩阵计算c ++库,我在开发项目中使用它。但有人告诉我不要使用它,因为它取决于标准容器,这对我来说是值得怀疑的。不使用标准容器的原因很复杂,我们暂时忽略它。我的问题是,eigen的实现真的取决于标准容器吗?我在Eigen主页上搜索过但没有找到。任何人都可以帮助我吗?
答案 0 :(得分:2)
是的,但是一点点。根据您的确切用途,您甚至可能不需要这些部件。您可以运行快速grep以准确查看使用的std::
容器以及位置。在3.3.0中,std::vector
成员以及std::list<>::iterator
中的./src/IterativeLinearSolvers/IncompleteCholesky.h
,std::vector
通常用作稀疏矩阵的输入(SparseMatrix::setFromTriplets
,虽然它确实需要迭代器)。
还有./src/StlSupport/
目录,但我不确定这是你不想要的。
答案 1 :(得分:2)
我宁愿说没有,因为只有两个非常小的用途:
第一个是IncompleteCholesky
,其中std::vector
和std::list
用于在计算过程中保存一些临时对象,而不是成员。仅当用户明确使用它时才使用此类。
第二个是SuperLUSupport
模块,它是一个支持第三个库的模块。同样,你不能意外使用!
Avi提到的StlSupport
模块只是一个辅助模块,可以简化STL容器中Eigen矩阵的存储。