std :: vector функции-члены - PullRequest
       5

std :: vector функции-члены

0 голосов
/ 28 марта 2011

Я видел этот вопрос в книге:

Какие функции-члены std :: vector контролируют выделенную память?

Может кто-нибудь ответить на это?
Спасибо

Ответы [ 5 ]

1 голос
/ 28 марта 2011

Распределением памяти классов-контейнеров управляет базовый Allocator, определенный для каждого из них.
Почти все функции-члены будут control выделенной памяти.

0 голосов
/ 28 марта 2011

Конструктор по умолчанию может выделять или не выделять память.

Другие конструкторы выделяют память, если вектор изначально не пуст, и могут или не могут, если он пуст.

operator=, assign, insert, push_back, reserve и resize перераспределят память, если новый размер или емкость превысит текущую емкость, и не будут иначе.

Деструктор освободитсялюбая выделенная память.

Никакая другая функция-член не изменит распределение памяти, хотя некоторые могут изменить или сделать недействительным содержимое памяти.

0 голосов
/ 28 марта 2011

Все они.Никто из них.Это деталь реализации. Вы не знаете, и это не имеет значения .

0 голосов
/ 28 марта 2011

Ожидаемый ответ на этот вопрос, вероятно, resize, reserve и clear, хотя последний не фактически контролирует выделенную память, он просто сбрасывает «известный» размер на ноль без изменение базового буфера.

0 голосов
/ 28 марта 2011

http://msdn.microsoft.com/en-us/library/k449z507(v=VS.100).aspx

Существуют ограничения на задавание вопросов в этом месте, на которые отвечает поиск в Google "функций-членов-векторов".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...