std::forward_list<T,Allocator>::remove,remove_if (3) - Linux Manuals

std::forward_list<T,Allocator>::remove,remove_if: std::forward_list<T,Allocator>::remove,remove_if

NAME

std::forward_list<T,Allocator>::remove,remove_if - std::forward_list<T,Allocator>::remove,remove_if

Synopsis


void remove( const T& value ); (since C++11)
                                          (until C++20)
size_type remove( const T& value ); (since C++20)
template< class UnaryPredicate > (since C++11)
void remove_if( UnaryPredicate p ); (until C++20)
template< class UnaryPredicate > (since C++20)
size_type remove_if( UnaryPredicate p );


Removes all elements satisfying specific criteria. The first version removes all elements that are equal to value, the second version removes all elements for which predicate p returns true.

Parameters


value - value of the elements to remove
        unary predicate which returns true if the element should be removed.
p - The expression p(v) must be convertible to bool for every argument v of type (possibly const) T, regardless of value_category, and must not modify v. Thus, a parameter type of T&is not allowed
        , nor is T unless for T a move is equivalent to a copy
        (since C++11).

Return value


(none) (until C++20)
The number of elements removed. (since C++20)

Complexity


Linear in the size of the container

Example


// Run this code


  #include <forward_list>
  #include <iostream>


  int main()
  {
      std::forward_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';
  }

Output:


  2 3 10 -1

See also


          removes elements satisfying specific criteria
remove (function template)
remove_if