##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::list::remove, remove_if

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

[edit template]

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.

### [edit] 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. ​

### [edit] Return value

(none)

### [edit] Complexity

Linear in the size of the container

### [edit] 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

### [edit] See also

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

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