何时使用 Eigen::Vector 与 std::vector?

问题描述 投票:0回答:1

由于外部依赖,我需要在

Eigen::VectorXi
容器中写入一些数据。

但是,有时我不需要使用 en

Eigen::VectorXi
作为容器,我可能会使用标准
std::vector<int>

目前我的代码中散布着

Eigen
std
向量。我决定使用
std:vector
的唯一时间是当我要即时插入时,因为调整大小和重新插入比使用
push_back(<value>)

更繁琐(并且可能在计算上昂贵)

我想确保我在正确的时间使用其中之一,而不是随机选择。使用

Eigen::Vector
而不是
std::vector
的正确实例是什么?

c++ vector eigen
1个回答
4
投票

Eigen 中的类代表数学对象。在本例中,是一个数学向量,具有向量上的所有典型运算,例如与矩阵或标量积相乘。

std::vector
本质上是一个(动态)数组,在连续空间中存储数据列表。典型的操作是附加数据或对其进行排序。

当您决定要使用什么时,只需问问自己这是否是一个数学向量。您可以扩展两者来保存另一个应该做的事情,在 std::vector 上创建标量积,但为什么要这样做呢?艾根已经这样做了。将其用于预期用途可以让每个人都清楚您所代表的含义,从而提高可读性。

© www.soinside.com 2019 - 2024. All rights reserved.