Шаг 258.
Библиотека STL.
Алгоритмы STL. Алгоритмы удаления

    На этом шаге мы перечислим алгоритмы удаления.

    Алгоритмы удаления составляют отдельную подгруппу модифицирующих алгоритмов. Они предназначены для удаления элементов либо в отдельном интервале, либо в процессе копирования в другой интервал. Как и в случае с модифицирующими алгоритмами, их приемником не может быть ассоциативный контейнер, поскольку элементы ассоциативного контейнера считаются константными. В таблице 1 перечислены алгоритмы удаления стандартной библиотеки C++.

Таблица 1. Алгоритмы удаления
Название Описание
remove() Удаляет элементы с заданным значением
remove_if() Удаляет элементы по заданному критерию
remove_copy() Копирует элементы, значение которых отлично от заданного
remove_copy_if() Копирует элементы, не соответствующие заданному критерию
unique() Удаляет смежные дубликаты (элементы, равные своему предшественнику)
unique_copy() Копирует элементы с удалением смежных дубликатов

    Учтите, что алгоритмы удаления ограничиваются только "логическим" удалением элементов, то есть их перезаписью следующими элементами, которые не были удалены. Таким образом, количество элементов в интервалах, с которыми работают алгоритмы, остается прежним, а алгоритм возвращает позицию нового "логического конца" интервала. Вызывающая сторона должна использовать ее по своему усмотрению (например, физически уничтожить удаленные элементы). Подробная информация по этой теме приведена на 106 шаге.

    На следующем шаге мы рассмотрим перестановочные алгоритмы.




Предыдущий шаг Содержание Следующий шаг