Найти тему

Удаление элементов из вектора в C++

Стереть элемент вектора по значению

Чтобы стереть элементы вектора по значению до С++ 20 необходимо:

-2
-3

В C++20 есть функция std::erase(), которая позволяет стереть элемент вектора по значению.

-4
-5

Стереть элемент вектора по индексу

Стандартным решением для удаления элемента вектора является использование std::vector::erase(). Чтобы удалить элемент из вектора по его индексу, мы можем использовать арифметику указателя, как показано ниже:

-6
-7

В качестве альтернативы мы можем использовать std::advance() - стандартный алгоритм для продвижения итератора на заданные позиции, чтобы указать на нужный индекс.

-8
-9

Условное удаление элементов вектора

Стандартное решение для условного удаления элементов вектора:

-10
-11

Начиная с C++20, мы можем использовать std::erase_if() алгоритм, который стирает все элементы из вектора, удовлетворяющего предоставленному предикату. Он определен в заголовке <vector>

-12
-13

Универсальный метод для условного стирания элементов вектора.

-14
-15
-16

Скачать код