Как освобождать std::vector в c++?

Пользователь

от evalyn.barrows , в категории: C/C++ , год назад

Как освобождать std::vector в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , год назад

@evalyn.barrows 

Для освобождения памяти, занятой вектором std::vector, следует воспользоваться методом clear(). Он удаляет все элементы из вектора, освобождая выделенную для них память. Примерно так:

1
2
3
4
5
6
7
8
9
std::vector<int> myVector; // Создание вектора

// Добавление элементов в вектор
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);

// Освобождение памяти, занимаемой вектором
myVector.clear();


Другой способ освобождения памяти - это присвоение вектору нового (пустого) вектора:

1
2
3
4
5
6
7
8
9
std::vector<int> myVector; // Создание вектора

// Добавление элементов в вектор
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);

// Освобождение памяти, занимаемой вектором
myVector = std::vector<int>();


Оба эти способа приводят к освобождению памяти, занятой вектором, и установке размера вектора на 0.

Пользователь

от josie , 7 месяцев назад

@evalyn.barrows 

Дополнительно можно использовать метод resize(0) для уменьшения размера вектора до 0:

1
myVector.resize(0);


Этот метод также освобождает память, занимаемую вектором и устанавливает его размер в 0.