CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 19 Jul 2025 18:49:24 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/deque/deque/erase/
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 19 Jul 2025 18:49:24 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8345-9ZW77vGSqVP4q1t81GXp/sinpxY"
Content-Encoding: gzip
Removes from the deque container either a single element (position) or a range of elements ([first,last)).
This effectively reduces the container size by the number of elements removed, which are destroyed.
Double-ended queues are designed to be efficient removing (and inserting) elements at either the end or the beginning of the sequence. Removals on other positions are usually less efficient than in list or forward_list containers.
Member type iterator is a random access iterator type that points to elements.
Output:
If the erasure includes the first element but not the last, only those referring to the erased elements are invalidated.
If it happens anywhere else in the deque, all iterators, pointers and references related to the container are invalidated.
If the erasure happens at the beginning or the end of the sequence, only the erased elements are modified (although see iterator validity above).
If it happens anywhere else, it is not safe to access or modify elements.
Otherwise, the container is guaranteed to end in a valid state (basic guarantee): Copying or moving elements while relocating them may throw.
Invalid ranges produce undefined behavior.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
deque
- deque::~deque
- deque::deque
member functions
- deque::assign
- deque::at
- deque::back
- deque::begin
-
deque::cbeginC++11
-
deque::cendC++11
- deque::clear
-
deque::crbeginC++11
-
deque::crendC++11
-
deque::emplaceC++11
-
deque::emplace_backC++11
-
deque::emplace_frontC++11
- deque::empty
- deque::end
- deque::erase
- deque::front
- deque::get_allocator
- deque::insert
- deque::max_size
- deque::operator[]
- deque::operator=
- deque::pop_back
- deque::pop_front
- deque::push_back
- deque::push_front
- deque::rbegin
- deque::rend
- deque::resize
-
deque::shrink_to_fitC++11
- deque::size
- deque::swap
non-member overloads
public member function
<deque>
std::deque::erase
iterator erase (iterator position);iterator erase (iterator first, iterator last);
iterator erase (const_iterator position );iterator erase (const_iterator first, const_iterator last );
Erase elements
This effectively reduces the container size by the number of elements removed, which are destroyed.
Double-ended queues are designed to be efficient removing (and inserting) elements at either the end or the beginning of the sequence. Removals on other positions are usually less efficient than in list or forward_list containers.
Parameters
- position
- Iterator pointing to a single element to be removed from the deque.
Member types iterator and const_iterator are random access iterator types that point to elements. - first, last
- Iterators specifying a range within the deque] to be removed: [first,last). i.e., the range includes all the elements between first and last, including the element pointed by first but not the one pointed by last.
Member types iterator and const_iterator are random access iterator types that point to elements.
Return value
An iterator pointing to the new location of the element that followed the last element erased by the function call. This is the container end if the operation erased the last element in the sequence.Member type iterator is a random access iterator type that points to elements.
Example
|
|
mydeque contains: 4 5 7 8 9 10 |
Complexity
Linear on the number of elements erased (destructions). Plus, depending on the particular library implemention, up to an additional linear time on the number of elements between position and one of the ends of the deque.Iterator validity
If the erasure operation includes the last element in the sequence, the end iterator and the iterators, pointers and references referring to the erased elements are invalidated.If the erasure includes the first element but not the last, only those referring to the erased elements are invalidated.
If it happens anywhere else in the deque, all iterators, pointers and references related to the container are invalidated.
Data races
The container is modified.If the erasure happens at the beginning or the end of the sequence, only the erased elements are modified (although see iterator validity above).
If it happens anywhere else, it is not safe to access or modify elements.
Exception safety
If the removed elements include the first or the last element in the container, no exceptions are thrown (no-throw guarantee).Otherwise, the container is guaranteed to end in a valid state (basic guarantee): Copying or moving elements while relocating them may throw.
Invalid ranges produce undefined behavior.
See also
- deque::pop_back
- Delete last element (public member function)
- deque::insert
- Insert elements (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us