Namespaces
Variants
Views
Actions

std::vector::erase

From cppreference.com
iterator erase( iterator pos );
iterator erase( const_iterator pos );
(1) (until C++11)
(since C++11)
iterator erase( iterator first, iterator last );
iterator erase( const_iterator first, const_iterator last );
(2) (until C++11)
(since C++11)

Removes specified elements from the container.

1) Removes the element at pos.

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

Iterators and references to the erased elements and to the elements between them and the end of the container are invalidated.

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 <vector>
#include <iostream>
 
 
int main( )
{
    std::vector<int> 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) linear in the distance between position and last.

2) linear in distance between position and the end of the container.

[edit] See also

clears the contents
(public member function) [edit]