gpt4 book ai didi

c++ - boost 中 compressed_matrix 分配的空间

转载 作者:行者123 更新时间:2023-11-28 03:55:37 25 4
gpt4 key购买 nike

boost compressed_matrix分配了多少空间?是不是只给非零元素分配空间?如果这是真的,我不明白为什么下面的代码会给出 bad_alloc 错误。

namespace bubla = boost::numeric::ublas; 
typedef double value_type;
typedef bubla::compressed_matrix<value_type> SparseMatrix;
unsigned int m = 10000*10000;
SparseMatrix D(m,m,3*m), X;

应该只为 3*m=3*10000*10000 个元素分配空间吧?

你能帮忙解释一下吗?我可以使用 boost 中的什么数据结构来仅为非零元素分配空间。其次,如何设置非零元素的值?

非常感谢。

最佳答案

请注意,您在上面的示例中将 m 定义为 10000*10000,这意味着您正在尝试分配 3 亿个 double 或 2.4 GB(假设每个 double 8 个字节)。

如果您只想要一个稀疏的 10000 x 10000 矩阵,只需定义“m=10000”即可。

关于c++ - boost 中 compressed_matrix 分配的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com