Удалить пятый элемент из std::vector

Удалите элемент через items.erase(items.begin() + 4), предварительно убедившись, что items.size() больше 4. Нумерация индексов начинается с нуля.

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

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

Удалите элемент через items.erase(items.begin() + 4), предварительно убедившись, что items.size() больше 4. Нумерация индексов начинается с нуля.

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

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

Условие

Необходимо избавиться от элемента с индексом 4 в массиве‑векторе объектов SomeClass.

std::vector<SomeClass> items;
// удалить 5-й элемент (индекс 4)

Ответ

Удалите элемент через items.erase(items.begin() + 4), предварительно убедившись, что items.size() больше 4. Нумерация индексов начинается с нуля.

if (items.size() <= 4)
    throw std::out_of_range("fifth element does not exist");
items.erase(items.begin() + 4);

В исходном примере vector ещё пуст, поэтому без проверки операция некорректна. Нужен . Удаление сохраняет взаимный порядок оставшихся элементов, сдвигая хвост влево, и имеет линейную стоимость по длине хвоста. Если порядок не нужен, обмен с последним и pop_back дают иной, более дешёвый контракт.

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

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

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

Подробнее