我有一个uBLAS矩阵,如下所示:
boost::numeric::ublas::matrix<double> mat(50000,50000);一旦我完成了矩阵上的一组计算,我想要释放它的内存。
根据docs的说法,我一直在使用mat.clear(),它“清除矩阵”。但是我的程序总是内存不足。
深入研究标题,我发现了以下内容:
void clear () {
std::fill (data ().begin (), data ().end (), value_type/*zero*/());
}因此,clear()存在明显的语义问题。
那么问题是,我如何确保内存被释放?
发布于 2013-09-09 03:57:28
返回内存的一种不优雅的方式是调整矩阵的大小:
mat.resize(0,0,false); 尽管我自己还没有尝试使用零作为大小值...
https://stackoverflow.com/questions/16626511
复制相似问题