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 回答