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

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

Восстановить пароль Регистрация
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 15:47     Динамические массивы и экстремум выделенной памяти #1
Как работают всякие vector'ы? Выделяют память под (допустим) 100 элементов, при достижении этого числа, выделяют новый блок памяти на 200 элементов и копируют туда первые 100, затем 300 и копирует первые 200 и так далее.
Вопрос такой : получается, что в момент расширения массива, потребление памяти будет 2N+K, где N-изначальное потребление памяти до расширения, K-фиксированное кол-во элементов для расширения, а значит N+K - будущий массив.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
5282 / 4801 / 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
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти #6
Это к экспертам вопрос. Может это как-то хитрее реализовано.
Yandex
Объявления
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти
Ответ Создать тему
Опции темы

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