# std::list::remove, remove_if

From cppreference.com
< cpp‎ | container‎ | list

void remove( const T& value ); |  |
template< class UnaryPredicate > void 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

p

-

unary predicate which returns ​true if the element should be removed.

The signature of the predicate function should be equivalent to the following:

bool pred(const Type &a);

The signature does not need to have const &, but the function must not modify the objects passed to it.
The type Type must be such that an object of type list<T,Allocator>::const_iterator can be dereferenced and then implicitly converted to Type. ​

### Return value

(none)

### Complexity

Linear in the size of the container

### Example

Run this code

    #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';
    }

Output:

    2 3 10 -1

### See also

remove remove_if | removes elements satisfying specific criteria (function template)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/container/list/remove&oldid=50538"