std::list::remove, std::list::remove_if
Материал из cppreference.com
void remove( const T& value ); |
||
template< class UnaryPredicate > void remove_if( UnaryPredicate p ); |
||
Удаляет все элементы, удовлетворяющие определенному условию. Первый вариант удаляет все элементы, равные value, второй вариант удаляет все элементы, для которых предикат p возвращает true.
Параметры
| value | — | значение удаляемых элементов |
| p | — | унарный предикат, который возвращаетtrue если элемент должен быть удален. Определение функции предиката должно быть эквивалентно следующему:
Присутствие |
Возвращаемое значение
(Нет)
Сложность
Линейно от размера контейнера
Пример
Запустить этот код
#include <list>
#include <iostream>
int main()
{
std::list<int> l = { 1,100,2,3,10,1,11,-1,12 };
l.remove(1); // remove both elements equal to 1
l.remove_if([](int n){ return n > 10; }); // remove all elements greater than 10
for (int n : l) {
std::cout << n << ' ';
}
std::cout << '\n';
}
Вывод:
2 3 10 -1
См. также
| удаляет элементы, соответствующие определённым критериям (шаблон функции) |