Стереть элемент вектора по значению
Чтобы стереть элементы вектора по значению до С++ 20 необходимо:
В C++20 есть функция std::erase(), которая позволяет стереть элемент вектора по значению.
Стереть элемент вектора по индексу
Стандартным решением для удаления элемента вектора является использование std::vector::erase(). Чтобы удалить элемент из вектора по его индексу, мы можем использовать арифметику указателя, как показано ниже:
В качестве альтернативы мы можем использовать std::advance() - стандартный алгоритм для продвижения итератора на заданные позиции, чтобы указать на нужный индекс.
Условное удаление элементов вектора
Стандартное решение для условного удаления элементов вектора:
Начиная с C++20, мы можем использовать std::erase_if() алгоритм, который стирает все элементы из вектора, удовлетворяющего предоставленному предикату. Он определен в заголовке <vector>
Универсальный метод для условного стирания элементов вектора.