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

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

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

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

29.10.2012, 15:47. Просмотров 348. Ответов 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++
Здравствуйте. Делаю систему обновления. С ftp и unicode разобрался. теперь встала проблема с сылками и размерностями массивов. В общем есть...

Двумерные динамические массивы-матрицы (выделение памяти) - C++
Помогите пожалуйста,разобраться. В динамической памяти сначала выделяется память для указателей на соответствующие двумерные массивы(строки...

Динамические массивы создаются в динамической области памяти с использованием операций NEW и DELETE - C++
Срочно нужна помощь! Массивы создаются в динамической области памяти с использованием операций NEW и DELETE. Задано два массива А (5) и...

Удаление выделенной памяти - C++
#include <iostream> using namespace std; int main() { int localVariable = 5; int * pLocal=...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
52 / 52 / 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
5416 / 4812 / 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? Прочитал по ссылке, как такового прямого ответа не нашел..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти
Еще ссылки по теме:

Удаление выделенной памяти - C++
есть такой класс: выделяю память под element *ptemp = new element; и iris *temp = new iris; нужно ли отдельно удалять new iris?? ...

Выход за границу выделенной памяти - C++
Какие операции (кроме записи) за пределами выделенной памяти приводят к UB?

Освобождение памяти, выделенной через new - C++
Я прочитал, что память динамически для строки, можно выделить к примеру узнать длину строки strlen(tex) и нужно добавить единицу для...

Корректно ли освобождение выделенной памяти? - C++
Извиняюсь, если такой вопрос уже звучал. Допустим есть такой кусок кода: struct A { int *x; } *b; void main() { b = new A;...

Мусор в памяти, выделенной динамически - C++
Есть код, выполняет разархивацию файла, закодированного LZ77. Вот его основная часть: цикл в котором проверяется каждый бит в маске и...

Массив: Освобождение выделенной памяти - C++
Сказали переделать код, нужно что бы память освобождалась не в отдельной функции а как то по другому так и не понял как. #include...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти #6
Это к экспертам вопрос. Может это как-то хитрее реализовано.
Yandex
Объявления
29.10.2012, 18:05     Динамические массивы и экстремум выделенной памяти
Ответ Создать тему
Опции темы

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