Deque Flashcards
Element access
at( )
access specified element with bounds checking
Returns a reference to the element at specified location pos, with bounds checking.
If pos is not within the range of the container, an exception of type std::out_of_range is thrown.
Parameters
pos - position of the element to return
Return value
Reference to the requested element.
Exceptions
std::out_of_range if !(pos < size()).
Complexity
Constant.
Element access
operator[]
access specified element
Returns a reference to the element at specified location pos. No bounds checking is performed.
Parameters
pos - position of the element to return
Return value
Reference to the requested element.
Complexity
Constant.
Element access
front( )
access the first element
Returns a reference to the first element in the container.
Calling front on an empty container is undefined.
Parameters
(none)
Return value
reference to the first element
Complexity
Constant
Element access
back( )
access the last element
Returns a reference to the last element in the container.
Calling back on an empty container causes undefined behavior.
Parameters
(none)
Return value
Reference to the last element.
Complexity
Constant.
Iterators
begin
cbegin( )
returns an iterator to the beginning
Returns an iterator to the first element of the deque.
If the deque is empty, the returned iterator will be equal to end().
range-begin-end.svg
Parameters
(none)
Return value
Iterator to the first element.
Complexity
Constant.
Iterators
end
cend( )
returns an iterator to the end
Returns an iterator to the element following the last element of the deque.
This element acts as a placeholder; attempting to access it results in undefined behavior.
range-begin-end.svg
Parameters
(none)
Return value
Iterator to the element following the last element.
Complexity
Constant.
Iterators
rbegin
crbegin( )
returns a reverse iterator to the beginning
Returns a reverse iterator to the first element of the reversed deque. It corresponds to the last element of the non-reversed deque. If the deque is empty, the returned iterator is equal to rend().
range-rbegin-rend.svg
Parameters
(none)
Return value
Reverse iterator to the first element.
Complexity
Constant.
Iterators
rend
crend( )
returns a reverse iterator to the end
Returns a reverse iterator to the element following the last element of the reversed deque. It corresponds to the element preceding the first element of the non-reversed deque. This element acts as a placeholder, attempting to access it results in undefined behavior.
range-rbegin-rend.svg
Parameters
(none)
Return value
Reverse iterator to the element following the last element.
Complexity
Constant.
Capacity
empty( )
checks whether the container is empty
Checks if the container has no elements, i.e. whether begin() == end().
Parameters
(none)
Return value
true if the container is empty, false otherwise
Complexity
Constant.
Capacity
size( )
returns the number of elements
Returns the number of elements in the container, i.e. std::distance(begin(), end()).
Parameters
(none)
Return value
The number of elements in the container.
Complexity
Constant.
Capacity
max_size( )
returns the maximum possible number of elements
Returns the maximum number of elements the container is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the largest container.
Parameters
(none)
Return value
Maximum number of elements.
Complexity
Constant.
Capacity
shrink_to_fit( )
reduces memory usage by freeing unused memory
Parameters
(none)
Type requirements
-T must meet the requirements of MoveInsertable.
Return value
(none)
Complexity
At most linear in the size of the container.
Modifiers
clear( )
clears the contents
Erases all elements from the container. After this call, size() returns zero.
Invalidates any references, pointers, or iterators referring to contained elements. Any past-the-end iterators are also invalidated.
Parameters
(none)
Return value (none)
Complexity
Linear in the size of the container, i.e., the number of elements.
Modifiers
emplace( )
constructs element in-place
Parameters
pos - iterator before which the new element will be constructed
args - arguments to forward to the constructor of the element
Type requirements
-T (the container’s element type) must meet the requirements of MoveAssignable, MoveInsertable and EmplaceConstructible.
Return value
Iterator pointing to the emplaced element.
Complexity
Linear in the lesser of the distances between pos and either of the ends of the container.
Modifiers
erase( )
erases elements
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 returned.
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 operator 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