0

これは非常に単純な質問です。三角行列を操作し、C++ でスパース行列を操作するためのベスト プラクティスは何ですか?

三角行列の場合、次のような簡単なデータ形式をお勧めします

double* myMatrix;
int dimension;

カスタムクラスのデータ構造として。(完全な形式では正方行列だったと思います。) また、要素を設定およびアクセスするためのメソッドが存在します。

疎行列の場合-行/列の要素の位置とその値のみを保存するなどの方法をいくつか知っています。それはあなたの経験に対する質問です - 疎行列のどの実装が最良のものになるでしょうか?

PSメモリが少なく、CPU使用量が少ない-それが私の目標です。最も単純なソリューションではなく、最適なソリューションを探しています。すべての行列は、線形方程式系を解くために使用されます。また、行列のサイズは巨大になります。

いつもアドバイスありがとうございます!

4

1 に答える 1

1

マトリックスの構造がわからない場合は、基本的にマップと同じです。を使用できますstd::map<std::pair<int,int>,double>。または、おそらくstd::unordered_mapそれを持っている場合。

于 2012-04-14T22:38:09.333 に答える