матрица uBLAS очищает память

У меня есть матрица uBLAS, вот так:

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

Как только я закончу с набором вычислений на матрице, я хочу освободить память.

Я использую mat.clear() который, согласно документы, «очищает матрицу». Но моей программе не хватает памяти.

Копаясь в заголовках, я нахожу это:

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

Так что есть четкая проблема семантики с clear(),

Тогда возникает вопрос: как мне освободить память?

3

Решение

Не элегантный способ вернуть память — изменить размер матрицы:

mat.resize(0,0,false);

Хотя я сам не пробовал использовать ноль для значения размера …

0

Другие решения

Других решений пока нет …

А ты уже прошел курс программирования? Супер скидка!
Прокачать скилл $$$
×