Использование shrink_to_fit () для освобождения памяти в векторе векторов - PullRequest
1 голос
/ 09 февраля 2020

Допустим, у меня есть std::vector<std::vector<int>> a(n, std::vector<int>(n, x));. Теперь я хочу освободить всю память, которую занял std::vector<std::vector<int>>. Достаточно ли сделать

a.clear();
a.shrink_to_fit();

или я должен сначала сделать это для всех внутренних векторов?

1 Ответ

1 голос
/ 09 февраля 2020

Достаточно сделать это для основного. Тогда будет вызван деструктор внутреннего вектора, а не просто изменение размера до 0.

Делая это для всех внутренних векторов - вы просто выполняете работу компилятора за него.

Также вы можете сделать это в одну строку: a = {};

...