Что происходит под капотом vector :: push_back с точки зрения памяти?

Мой вопрос касается эффекта vector :: push_back , я знаю, что он добавляет элемент в конец вектора, но что происходит под капотом ?

Объекты памяти IIRC распределяются последовательно, поэтому мой вопрос заключается в том, выделяет ли vector :: push_back просто больше памяти сразу после вектора, и если да, что происходит, если не хватает свободной памяти в этом месте? Или, возможно, в «конец» добавлен указатель, чтобы вектор «перескочил» в то место, где он продолжается? Или он просто перераспределяется путем копирования в другое место, где достаточно места, а старая копия отбрасывается? Или что-нибудь еще?

13
задан Björn Pollex 26 October 2011 в 07:54
поделиться