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