Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mendel
2 / 2 / 0
Регистрация: 19.09.2015
Сообщений: 120
Завершенные тесты: 1
#1

Нужно ли очищать память, выделенную под вектор? - C++

05.03.2017, 23:06. Просмотров 438. Ответов 3
Метки нет (Все метки)

Доброго времени суток. При работе с динамическими массивами всегда чистил память оператором delete. Нужно ли делать тоже самое с векторами, и если да, то как? Например в примере, приведенном ниже.

C++
1
2
3
4
5
6
#include <vector>
 
vector<int> arr;
arr.reserve(10);
arr.resize(10);
//....
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2017, 23:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно ли очищать память, выделенную под вектор? (C++):

Класс list, когда нужно очищать память? - C++
не могу разобраться когда нужно очищать память &quot;delete input_&quot; и почему каждый раз выделяя помять у меня один и ттот же адрес ...

Очистить динамическую память, выделенную под член структуры - C++
Объявление и инициализация объекта: pupil B = Constructor(&quot;MyName&quot;, 18, 50); Сама структура: struct pupil{ public: char *name =...

Не могу удалить динамически выделенную память под массив - C++
Здравствуйте. Изучил сегодня динамическое выделение памяти и не могу ее удалить. Подскажите где ошибка и, если возможно, объясните почему...

Почему не очищает память, выделенную под массив структур - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; const int ar_size=20; struct CandyBar { char name; double...

Как правильно удалять выделенную память под указатель на указатель? - C++
есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; void sort_1(const...

Очищать ли память? - C++
Всем привет. Начал изучать С++ и возник такой вопрос. Есть стандартный класс string, например я создал строку: string a = &quot;abcd&quot;; Потом...

3
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
05.03.2017, 23:11 #2
Цитата Сообщение от Mendel Посмотреть сообщение
то как?
http://ru.cppreference.com/w/cpp/container/vector/shrink_to_fit
0
rikimaru2013
C++ Game Dev
2471 / 1140 / 241
Регистрация: 30.11.2013
Сообщений: 3,709
05.03.2017, 23:17 #3
Mendel, а зачем? Если придерживаться single responsibility principle то вектор не проживёт дольше 5-12 операций. А если вектор член класса - то зачем вечно подчищать хвост? Он же не просто дефакто появляется
0
New man
154 / 92 / 23
Регистрация: 23.05.2011
Сообщений: 551
Завершенные тесты: 2
06.03.2017, 00:01 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Он удалится сам при выходе из зоны видимости, как, например, переменная типа int.

Специально удалять надо, если сам вектор у тебя почему-то в куче ( vector<int>* t = new vector<int>(); delete t.

Метод shrink_to_fit, который изменяет размер зарезервированной памяти, нужен крайне редко, и вероятнее всего, тебе не нужен пока.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2017, 00:01
Привет! Вот еще темы с ответами:

Как правильно очищать вектор указателей - C++
Привет Всем! Есть вопрос по вектору указателей, как правильно очищать память при таком случае очищение происходит существенно медленнее чем...

Запись в динамически выделенную память - C++
Во общем, в dll выделяется память под char *, через new. Требуется в другой программе в которой я подключаю эту дллку переписать эти данные...

Удалить динамически выделенную память - C++
Получится ли освободить динамически выделенную память в интерфейсе одного класса, в интерфейсе другого класса, с условием что я использую...

Сырой указатель на память выделенную через new[] - C++
Добрый вечер, подскажите правильную перегрузку для указателя на память выделенную через new #include &lt;iostream&gt; using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru