المتغيرات
فضاءات التسمية
أفعال

std::{{{1}}}::erase

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

Removes specified elements from the container.

1) Removes the element at ‎pos‎.
2) Removes the elements in the range ‎[first; last)‎.

Information on iterator invalidation is copied from here

The iterator ‎pos‎ must be valid and dereferenceable. Thus the end()‎ iterator (which is valid, but is not dereferencable) cannot be used as a value for ‎pos‎.

The iterator ‎first‎ does not need to be dereferenceable if ‎first==last‎: erasing an empty range is a no-op.

محتويات

[تعديل] Parameters

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

[تعديل] Return value

Iterator following the last removed element. If the iterator ‎pos‎ refers to the last element, the end()‎ iterator is returned.

[تعديل] Exceptions

(none)

[تعديل] Complexity

1) Linear in distance between ‎position‎ and the end of the container.
2) Linear in the distance between ‎position‎ and ‎last‎.

[تعديل] Example

#include <{{{1}}}>
#include <iostream>
#include <iterator>
 
int main( )
{
    std::{{{1}}}<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';
 
    std::{{{1}}}<int>::iterator range_begin = c.begin();
    std::{{{1}}}<int>::iterator range_end = c.begin();
    std::advance(range_begin,2);
    std::advance(range_end,5);
 
    c.erase(range_begin, range_end);
 
    for (auto &i : c) {
        std::cout << i << " ";
    }
    std::cout << '\n';
}

الخرج:

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

[تعديل] See also

قالب:dsc mem fun