Как освобождать std::vector?
Делаю алгоритм на C++, и в нем мне нужен расширяющийся список чисел. Нашел std::vector, и вроде все хорошо, однако у меня утечки.
Создаю вот так:
std::vector<int> openTiles = *new std::vector<int>();
Пробовал удалять через:
openTiles.clear();delete & openTiles;delete[] & openTilesstd::vector<int>().swap(openTiles);openTiles.get_allocator().deallocate(openTiles._Unchecked_begin(), openTiles.size());
Помогите, как мне этот std::vector убрать из памяти?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
А никак.
std::vector<int> openTiles = *new std::vector<int>();
Вы создаете std::vector<int>(), копируете его и благополучно теряете указатель на оригинал. Всё. Утечка неизбежна...
Объясните, чем вам просто
std::vector<int> openTiles;
не нравится? Абсолютно тот же результат — пустой вектор, и никаких утечек...