外部依存関係のため、コンテナにデータを書き込む必要があります。Eigen :: VectorとStd :: Vectorの使い分けは?
はしかし、私はコンテナとしてエン使用する必要はありませんよこれで、他の時間がある、と私は標準std::vector<int>
は現在、私は私のコードを振りかけEigen
とstd
ベクトルを持って使用することができます。私は必ずしたいpush_back(<value>)
を使用するよりも、私はstd:vector
を使用することを決定しただけの時間、私はその場で挿入を行うことになります時にリサイズして再挿入すると、より多くの退屈な(そしておそらく計算コストが高い)であることから、ありますランダムに選択するのではなく、適切な時間にどちらか一方を使用しているということです。 std::vector
の代わりにEigen::Vector
を使用する正しいインスタンスは何ですか?
私が使っているライブラリ(libigl)はその前提に従いません。私はそれがよりキャッシュフレンドリーでメモリ効率を高めることを意図していると思います。 Eigenとstdベクターの間のアクセスの速度、メモリには根本的な違いがありますか? (可読性は大きなプラスだと私は同意します) – Javier
@Javier両方のメソッドが効率的に記述されていると仮定することは安全です。つまり、各メソッドが提供するすべてのメソッドが強力です。私たちがアクセスについて話すならば、どちらの場合でも効率的でなければなりません。疎なデータを扱う場合、Eigenはベクトルクラスが疎であるため、より効率的です。 std :: vectorは連続したデータを格納します。 – Aziuth
Eigenは、そのデータ構造上でベクトル化された演算を実装します。したがって、データが数学演算を通過する場合、Eigenはおそらくあなたが望むものです。 – daragua