typedef vector<int> int_vector;
int_vector v;
v.resize(10);
...
v = int_vector();
Оказалось, ошибался. Так не освобождает. По крайней мере, стандарт не обязывает.
Следовательно, остался только один способ освободить память — с помощью vector::swap:
int_vector().swap(v);
(способ описан в "Эффективном использовании STL" Скотта Мейерса)
у Страуструпа этот способ тоже описан =)
ОтветитьУдалитьТочно :)
ОтветитьУдалитьК сожалению, пока не пользуешься в памяти надолго не откладывается :)