Как освободить память от станд.:: двухсторонняя очередь?

  1. мышь - были сообщения о человеческом взаимодействии. Мне мышь была шлюзом к человеческому взаимодействию. Без него мы все еще ввели бы и не нажали бы в перетаскивании, даже с нашими пальцами.

  2. GUI - Похваливший мышь отлично. Я работаю в среде, где as400 является бэкендом одного из наших основных приложений. Да.. Интересный материал, но это просто напоминает мне об экранах 'Bill Gates', работает в в фильме 'Пираты Силиконовой долины' даже при том, что это не, каково это было. Мне, 1 и 2 причина, кто-либо, включая дедушек и бабушек может использовать компьютер.

  3. Excel / электронные таблицы - Кто-то упомянул это прежде, но это - работа, упоминающая снова. Это таким образом удобно для пользователя и является большой точкой входа для нетехнических пользователей, чтобы попробовать их силы в простых концепциях программирования при выполнении вычислений на ячейках. Предоставленный это вышло до 1980, но 1980 сообщения версий когда технология в развитых электронных таблицах.

  4. Интернет (конечно) - Не уверенный, как люди записали код без него! Не горите меня для повторения, потому что это принадлежит в каждом списке.

  5. INTELLISENSE - ЛЮБИТ ЕГО, ЛЮБЯТ ЕГО, ЛЮБЯТ ЕГО!!!!

9
задан Peter 7 August 2009 в 00:58
поделиться

3 ответа

Невозможно сделать это напрямую в std :: deque. Однако это легко сделать, используя временный (что в основном происходит в std :: vector, когда вы уменьшаете его емкость).

Вот хорошая статья по std :: deque , в которой сравнивается это в std :: vector. В самом низу показан простой способ поменять местами и сжать вектор, который работает так же с deque.

15
ответ дан 4 December 2019 в 08:52
поделиться

Объем памяти двухсторонней очереди может уменьшаться, а может и не уменьшаться. Когда и Как это происходит, зависит от реализации. К сожалению, у вас нет особого ручного контроля над этим, так как у deques отсутствует четная емкость () или резерв ().

Я бы предложил swap (), если вы действительно обнаружите, что освобождение памяти не выполняется в удобное для вас время.

] Подробные сведения об управлении памятью deque, вероятно, можно получить на веб-сайте Dikum (это ваша текущая реализация, верно?)

4
ответ дан 4 December 2019 в 08:52
поделиться

std :: deque вернет память своему распределителю. Часто этот распределитель не возвращает память в ОС. В таких случаях кажется, что память не «освобождена». Хорошие детекторы утечки памяти будут удовлетворены, как только память будет возвращена распределителю, и поймут, что не вся память освобождается с помощью free () .

1
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: