std::deque

From Cppreference

Jump to: navigation, search
Defined in header <deque>

template<

    class T,
    class Allocator = std::allocator<T>

> class deque;

Double-ended queues (or deques) are similar to vectors, except that they allow fast insertions and deletions at both the beginning and the end of the container and that they are not required to be contiguous.

Deques are commonly implemented as lists of individual dynamically allocated arrays of some convenient size, e.g. memory page size. This guarantees constant time access, amortized constant time insertion and deletion at either end of the deque (a new array may have to be allocated), and linear time insertion and deletion from the middle of the deque.

Contents

[edit] Member types

Member type Definition
value_type T
allocator_type Allocator
size_type Unsigned integral type (usually size_t)
difference_type Signed integer type (usually ptrdiff_t)
reference Allocator::reference (pre-C++11 version)
value_type& (C++11 version)
const_reference Allocator::const_reference (pre-C++11 version)
const value_type& (C++11 version)
pointer T* (pre-C++11 version)
std::allocator_traits<Allocator>::pointer (C++11 version)
const_pointer const T* (pre-C++11 version)
std::allocator_traits<Allocator>::const_pointer (C++11 version)
iterator Random access iterator
const_iterator Constant random access iterator
reverse_iterator std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>

[edit] Member functions

(constructor)
constructs the deque
(public member function)
(destructor)
destructs the deque
(public member function)
operator=
assigns values to the container
(public member function)
assign
assigns values to the container
(public member function)
get_allocator
returns the associated allocator
(public member function)
Element access
at
access specified element with bounds checking
(public member function)
operator[]
access specified element
(public member function)
front
access the first element
(public member function)
back
access the last element
(public member function)
Iterators
begin
cbegin

returns an iterator to the beginning
(public member function)
end
cend

returns an iterator to the end
(public member function)
rbegin
crbegin

returns a reverse iterator to the beginning
(public member function)
rend
crend

returns a reverse iterator to the end
(public member function)
Capacity
empty
checks whether the container is empty
(public member function)
size
returns the number of elements
(public member function)
max_size
returns the maximum possible number of elements
(public member function)
shrink_to_fit (C++11)
reduces memory usage by freeing unused memory
(public member function)
Modifiers
clear
clears the contents
(public member function)
insert
inserts elements
(public member function)
emplace (C++11)
constructs element in-place
(public member function)
erase
erases elements
(public member function)
push_back
inserts elements to the end
(public member function)
emplace_back (C++11)
constructs elements in-place at the end
(public member function)
pop_back
removes the last element
(public member function)
push_front
inserts elements to the beginning
(public member function)
emplace_front (C++11)
constructs elements in-place at the beginning
(public member function)
pop_front
removes the first element
(public member function)
resize
changes the number of elements stored
(public member function)
swap
swaps the contents
(public member function)

[edit] Non-member functions

operator==
operator!=
operator<
operator<=
operator>
operator>=
lexicographically compares the values in the container
(function)
std::swap(std::deque)
specializes the std::swap() algorithm
(function template)