由于外部依赖,我需要在
Eigen::VectorXi
容器中写入一些数据。
但是,有时我不需要使用 en
Eigen::VectorXi
作为容器,我可能会使用标准 std::vector<int>
目前我的代码中散布着
Eigen
和 std
向量。我决定使用 std:vector
的唯一时间是当我要即时插入时,因为调整大小和重新插入比使用 push_back(<value>)
更繁琐(并且可能在计算上昂贵)
我想确保我在正确的时间使用其中之一,而不是随机选择。使用
Eigen::Vector
而不是 std::vector
的正确实例是什么?
Eigen 中的类代表数学对象。在本例中,是一个数学向量,具有向量上的所有典型运算,例如与矩阵或标量积相乘。
std::vector
本质上是一个(动态)数组,在连续空间中存储数据列表。典型的操作是附加数据或对其进行排序。
当您决定要使用什么时,只需问问自己这是否是一个数学向量。您可以扩展两者来保存另一个应该做的事情,在 std::vector 上创建标量积,但为什么要这样做呢?艾根已经这样做了。将其用于预期用途可以让每个人都清楚您所代表的含义,从而提高可读性。