Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Динамические массивы и экстремум выделенной памяти - C++

29.10.2012, 15:47. Просмотров 324. Ответов 5
Метки нет (Все метки)

Как работают всякие vector'ы? Выделяют память под (допустим) 100 элементов, при достижении этого числа, выделяют новый блок памяти на 200 элементов и копируют туда первые 100, затем 300 и копирует первые 200 и так далее.
Вопрос такой : получается, что в момент расширения массива, потребление памяти будет 2N+K, где N-изначальное потребление памяти до расширения, K-фиксированное кол-во элементов для расширения, а значит N+K - будущий массив.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2012, 15:47     Динамические массивы и экстремум выделенной памяти
Посмотрите здесь:

Корректно ли освобождение выделенной памяти? C++
C++ Массив: Освобождение выделенной памяти
C++ Двумерные динамические массивы-матрицы (выделение памяти)
C++ Мусор в памяти, выделенной динамически
Динамические массивы создаются в динамической области памяти с использованием операций NEW и DELETE C++
C++ Динамические массивы структур и выделение (перевыделение) памяти
C++ Освобождение памяти, выделенной через new
Удаление выделенной памяти C++
Динамические массивы и освобождение памяти C++
Выход за границу выделенной памяти C++
C++ Динамические массивы с подряд идущими элементами в памяти
C++ Создание объектов в заранее выделенной памяти

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
29.10.2012, 15:54     Динамические массивы и экстремум выделенной памяти #2
кажется не так...
Выделяется память под n элементов. При добавлении ещё одного элемента, в случае когшда места под новый элемент уже нет, размер вектора увеличивается на n+(int)n/2
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 16:36  [ТС]     Динамические массивы и экстремум выделенной памяти #3
denys_l, не суть. Вопрос был в экстремуме выделенной памяти
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 17:39     Динамические массивы и экстремум выделенной памяти #4
http://alenacpp.blogspot.ru/search?q=resize
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 17:55  [ТС]     Динамические массивы и экстремум выделенной памяти #5
alsav22, т.е так и получается 2N+K? Прочитал по ссылке, как такового прямого ответа не нашел..
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти #6
Это к экспертам вопрос. Может это как-то хитрее реализовано.
Yandex
Объявления
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти
Ответ Создать тему
Опции темы

Текущее время: 04:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru