【发布时间】:2020-01-28 21:40:25
【问题描述】:
我正在尝试实现一种算法(C++),它的结构基本如下:
-
构建包含
的数据结构a) 向量(双精度)
b) vector(vector(double)) (表示一个稀疏矩阵A,内向量 大小先验未知,也不相同)
运行迭代算法,对这些算法执行大量计算 结构
为了提高效率,我想确保在第二部分开始之前优化内存分配,因此如果可能,存储在 A 中的向量在内存中彼此相邻,没有任何开销或任何东西。有什么好办法吗?
【问题讨论】:
-
根据您的描述,您可以对所有数据使用单个向量,并使用一个单独的指向行的指针向量。虽然通常稀疏矩阵在两个方向上都是稀疏的,所以这可能还不够。
-
vector<vector<double>>不足以表示一般的稀疏矩阵。