uBLAS矩阵清晰记忆

时间:2013-05-18 16:26:22

标签: c++ memory-management boost matrix boost-ublas

我有一个uBLAS矩阵,如下所示:

boost::numeric::ublas::matrix<double> mat(50000,50000);

一旦我完成了对矩阵的一组计算,我希望释放它的内存。

我一直在使用mat.clear(),根据docs,“清除矩阵”。但是我的程序内存不足。

挖掘标题,我发现:

void clear () {
  std::fill (data ().begin (), data ().end (), value_type/*zero*/());
}

因此clear()存在明确的语义问题。

那么问题是,如何确保释放内存?

1 个答案:

答案 0 :(得分:0)

返回内存的一种不优雅的方法是调整矩阵的大小:

mat.resize(0,0,false);  

虽然我自己没有尝试使用零作为尺寸值...