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