std::list::erase

From Cppreference

Jump to: navigation, search
iterator erase( iterator position );
iterator erase( const_iterator position );
(1) (pre-C++11 version)
(C++11 version)

iterator erase( iterator first, iterator last );
iterator erase( const_iterator first, const_iterator last );
(2) (pre-C++11 version)
(C++11 version)

Removes specified elements from the container.

1) Removes the element at pos.

2) Removes the elements in the range [first; last).

Contents

[edit] Parameters

pos - iterator to the element to remove
first, last - range of elements to remove

[edit] Return value

iterator following the last removed element.

[edit] Example

#include <list>
#include <iostream>
 
int main( )
{
    std::list c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
 
    c.erase(c.begin);
 
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
 
    c.erase(c.begin + 2, c.begin + 5);
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
}

Output:

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 6 7 8 9

[edit] Complexity

1) Constant.

2) linear in the distance between first and last.

[edit] See also

clear
clears the contents
(public member function)