Есть вектор из 100 элементов. Как работает механика добавления 101-го элемента, что произойдет при удалении этого элемента?

Добавление 101-го элемента зависит от capacity: при наличии места перераспределения нет, иначе vector выделяет новый буфер. Удаление последнего элемента уменьшает size, но не capacity.

Короткий ответ

Что ответить на собеседовании

Добавление 101-го элемента зависит от capacity: при наличии места перераспределения нет, иначе vector выделяет новый буфер. Удаление последнего элемента уменьшает size, но не capacity.

Подробный разбор

Ответ с пояснениями

Добавление 101-го элемента зависит от capacity: при наличии места перераспределения нет, иначе vector выделяет новый буфер. Удаление последнего элемента уменьшает size, но не capacity.

При перераспределении существующие элементы перемещаются или копируются, старые итераторы и ссылки становятся недействительными. Точный коэффициент роста стандарт не задаёт. Без перераспределения push_back сохраняет ссылки на прежние элементы, но меняет end().

pop_back уничтожает последний элемент, не возвращая автоматически зарезервированную память. reserve заранее задаёт достаточную ёмкость, а shrink_to_fit лишь просит реализацию уменьшить её.

Источник: eel.is.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее