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

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

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

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

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

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

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

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

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

Динамические массивы структур и выделение (перевыделение) памяти - C++
Здравствуйте. Делаю систему обновления. С ftp и unicode разобрался. теперь встала проблема с сылками и размерностями массивов. В общем есть...

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

Динамические массивы и функции. Динамические массивы. - C++
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные числу, введенному с клавиатуры.

5
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
29.10.2012, 15:54 #2
кажется не так...
Выделяется память под n элементов. При добавлении ещё одного элемента, в случае когшда места под новый элемент уже нет, размер вектора увеличивается на n+(int)n/2
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 16:36  [ТС] #3
denys_l, не суть. Вопрос был в экстремуме выделенной памяти
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 17:39 #4
http://alenacpp.blogspot.ru/search?q=resize
2
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 17:55  [ТС] #5
alsav22, т.е так и получается 2N+K? Прочитал по ссылке, как такового прямого ответа не нашел..
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 18:05 #6
Это к экспертам вопрос. Может это как-то хитрее реализовано.
1
29.10.2012, 18:05
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++
#include <iostream> using namespace std; int main() { int localVariable = 5; int * pLocal=...

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

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


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

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

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