FreeBSD Manual Pages
std::deque::erase(3) C++ Standard Libary std::deque::erase(3) NAME std::deque::erase - std::deque::erase Synopsis iterator erase( iterator pos ); (until C++11) iterator erase( const_iterator pos ); (since C++11) iterator erase( iterator first, iterator last ); (1) (until C++11) iterator erase( const_iterator first, (2) (since C++11) const_iterator last ); Erases the specified elements from the container. 1) Removes the element at pos. 2) Removes the elements in the range [first, last). All iterators and references are invalidated, unless the erased ele- ments are at the end or the beginning of the container, in which case only the itera- tors and references to the erased elements are invalidated. It is unspecified when the past-the-end iterator is invalidated. (until C++11) The past-the-end iterator is also invalidated unless the erased elements are at the beginning of the container and the last element is (since C++11) not erased. The iterator pos must be valid and dereferenceable. Thus the end() iterator (which is valid, but is not dereferenceable) 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 Type requirements - T must meet the requirements of MoveAssignable. Return value Iterator following the last removed element. If pos refers to the last element, then the end() iterator is re- turned. If last==end() prior to removal, then the updated end() iterator is returned. If [first, last) is an empty range, then last is returned. Exceptions Does not throw unless an exception is thrown by the assignment oper- ator of T. Complexity Linear: the number of calls to the destructor of T is the same as the number of elements erased, the number of calls to the assignment operator of T is no more than the lesser of the number of elements before the erased elements and the number of elements after the erased elements Example // Run this code #include <deque> #include <iostream> void print_container(const std::deque<int>& c) { for (int i : c) { std::cout << i << " "; } std::cout << '\n'; } int main( ) { std::deque<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; print_container(c); c.erase(c.begin()); print_container(c); c.erase(c.begin()+2, c.begin()+5); print_container(c); // Erase all even numbers (C++11 and later) for (std::deque<int>::iterator it = c.begin(); it != c.end(); ) { if (*it % 2 == 0) { it = c.erase(it); } else { ++it; } } print_container(c); } 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 1 7 9 See also clear clears the contents (public member function) http://cppreference.com 2022.07.31 std::deque::erase(3)
NAME | Synopsis | Parameters | Type requirements | Return value | Exceptions | Complexity | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::deque::erase&sektion=3&manpath=FreeBSD+Ports+15.0>
