Упрощённый способ удалить элемент по индексу из std::vector

Проверьте, что размер вектора больше индекса, затем вызовите erase с итератором begin() + index. Индекс 4 соответствует пятому элементу.

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

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

Проверьте, что размер вектора больше индекса, затем вызовите erase с итератором begin() + index. Индекс 4 соответствует пятому элементу.

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

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

Условие

Нужно реализовать простой и прямой метод удаления элемента из вектора по заданному индексу.

std::vector<Element> items;
// удалить элемент с индексом 4

Ответ

Проверьте, что размер вектора больше индекса, затем вызовите erase с итератором begin() + index. Индекс 4 соответствует пятому элементу.

if (items.size() > 4) {
    items.erase(items.begin() + 4);
}

В показанном исходнике вектор пуст, поэтому без проверки итератор был бы недопустимым. Здесь отсутствие элемента трактуется как отсутствие действия; можно выбрать исключение или код ошибки, если это требуется контрактом.

erase сдвигает последующие элементы влево, уменьшает size и инвалидирует итераторы и ссылки начиная с удалённой позиции. Ёмкость автоматически не уменьшается.

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

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

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

Подробнее