Eigen的实现是否依赖于标准容器?

时间:2016-11-18 06:56:26

标签: stl eigen

Eigen是一个很棒的代数/矩阵计算c ++库,我在开发项目中使用它。但有人告诉我不要使用它,因为它取决于标准容器,这对我来说是值得怀疑的。不使用标准容器的原因很复杂,我们暂时忽略它。我的问题是,eigen的实现真的取决于标准容器吗?我在Eigen主页上搜索过但没有找到。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

是的,但是一点点。根据您的确切用途,您甚至可能不需要这些部件。您可以运行快速grep以准确查看使用的std::容器以及位置。在3.3.0中,std::vector成员以及std::list<>::iterator中的./src/IterativeLinearSolvers/IncompleteCholesky.hstd::vector通常用作稀疏矩阵的输入(SparseMatrix::setFromTriplets ,虽然它确实需要迭代器)。

还有./src/StlSupport/目录,但我不确定这是你不想要的。

答案 1 :(得分:2)

我宁愿说没有,因为只有两个非常小的用途:

第一个是IncompleteCholesky,其中std::vectorstd::list用于在计算过程中保存一些临时对象,而不是成员。仅当用户明确使用它时才使用此类。

第二个是SuperLUSupport模块,它是一个支持第三个库的模块。同样,你不能意外使用!

Avi提到的StlSupport模块只是一个辅助模块,可以简化STL容器中Eigen矩阵的存储。