std::experimental::erase (std::forward_list)
С ru.cppreference.net
< cpp | Экспериментальное
| Определено в заголовочном файле <experimental/forward_list>
|
||
template< class T, class A, class U >
void erase( std::forward_list<T, A>& c, const U& value );
|
(library fundamentals TS v2) | |
Удаляет все элементы, которые равны value из контейнера. Эквивалентно c.remove_if([&](auto& elem) { return elem == value; });.
Параметры
| c | - | контейнер, из которого производится удаление |
| value | - | значение для удаления |
Сложность
Линейный.
Пример
Запустить этот код
#include <experimental/forward_list> #include <iostream> auto show = [](const auto& container) { for (auto e : container) std::cout << e; std::cout << '\n'; }; int main() { std::forward_list<int> data{1, 1, 1, 4, 1, 1, 1, 2, 1, 1, 1}; show(data); std::experimental::erase(data, 1); show(data); }
Вывод:
11141112111 42
Примечания
В отличие от std::forward_list::remove , этот шаблон функции принимает гетерогенные типы и не принуждает к преобразованию в тип значения контейнера перед вызовом оператора == .
См. также
| удаляет элементы, удовлетворяющие определённым критериям (шаблон функции & алгоритмический функциональный объект) | |
(C++20)(C++20) |
|
| удаляет элементы, удовлетворяющие определённым критериям (открытая функция-член класса std::forward_list<T,Allocator>)
| |
(Library Fundamentals 2 TS) |
удаляет все элементы, удовлетворяющие предикату, из std::forward_list (шаблон функции) |