#include <stl_deque.h>
Inheritance diagram for _GLIBCXX_STD::deque< _Tp, _Alloc >:
Public Types | |
typedef _Tp | value_type |
typedef _Tp_alloc_type::pointer | pointer |
typedef _Tp_alloc_type::const_pointer | const_pointer |
typedef _Tp_alloc_type::reference | reference |
typedef _Tp_alloc_type::const_reference | const_reference |
typedef _Base::iterator | iterator |
typedef _Base::const_iterator | const_iterator |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
typedef std::reverse_iterator< iterator > | reverse_iterator |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef _Alloc | allocator_type |
Public Member Functions | |
deque (const allocator_type &__a=allocator_type()) | |
Default constructor creates no elements. | |
deque (size_type __n, const value_type &__value=value_type(), const allocator_type &__a=allocator_type()) | |
Create a deque with copies of an exemplar element. | |
deque (const deque &__x) | |
Deque copy constructor. | |
template<typename _InputIterator> | |
deque (_InputIterator __first, _InputIterator __last, const allocator_type &__a=allocator_type()) | |
Builds a deque from a range. | |
~deque () | |
deque & | operator= (const deque &__x) |
Deque assignment operator. | |
void | assign (size_type __n, const value_type &__val) |
Assigns a given value to a deque. | |
template<typename _InputIterator> | |
void | assign (_InputIterator __first, _InputIterator __last) |
Assigns a range to a deque. | |
allocator_type | get_allocator () const |
Get a copy of the memory allocation object. | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
size_type | size () const |
size_type | max_size () const |
void | resize (size_type __new_size, value_type __x=value_type()) |
Resizes the deque to the specified number of elements. | |
bool | empty () const |
reference | operator[] (size_type __n) |
Subscript access to the data contained in the deque. | |
const_reference | operator[] (size_type __n) const |
Subscript access to the data contained in the deque. | |
reference | at (size_type __n) |
Provides access to the data contained in the deque. | |
const_reference | at (size_type __n) const |
Provides access to the data contained in the deque. | |
reference | front () |
const_reference | front () const |
reference | back () |
const_reference | back () const |
void | push_front (const value_type &__x) |
Add data to the front of the deque. | |
void | push_back (const value_type &__x) |
Add data to the end of the deque. | |
void | pop_front () |
Removes first element. | |
void | pop_back () |
Removes last element. | |
iterator | insert (iterator position, const value_type &__x) |
Inserts given value into deque before specified iterator. | |
void | insert (iterator __position, size_type __n, const value_type &__x) |
Inserts a number of copies of given data into the deque. | |
template<typename _InputIterator> | |
void | insert (iterator __position, _InputIterator __first, _InputIterator __last) |
Inserts a range into the deque. | |
iterator | erase (iterator __position) |
Remove element at given position. | |
iterator | erase (iterator __first, iterator __last) |
Remove a range of elements. | |
void | swap (deque &__x) |
Swaps data with another deque. | |
void | clear () |
Protected Types | |
typedef pointer * | _Map_pointer |
Protected Member Functions | |
void | _M_range_check (size_type __n) const |
template<typename _Integer> | |
void | _M_initialize_dispatch (_Integer __n, _Integer __x, __true_type) |
template<typename _InputIterator> | |
void | _M_initialize_dispatch (_InputIterator __first, _InputIterator __last, __false_type) |
void | _M_fill_initialize (const value_type &__value) |
template<typename _Integer> | |
void | _M_assign_dispatch (_Integer __n, _Integer __val, __true_type) |
template<typename _InputIterator> | |
void | _M_assign_dispatch (_InputIterator __first, _InputIterator __last, __false_type) |
template<typename _InputIterator> | |
void | _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag) |
template<typename _ForwardIterator> | |
void | _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) |
void | _M_fill_assign (size_type __n, const value_type &__val) |
template<typename _Integer> | |
void | _M_insert_dispatch (iterator __pos, _Integer __n, _Integer __x, __true_type) |
template<typename _InputIterator> | |
void | _M_insert_dispatch (iterator __pos, _InputIterator __first, _InputIterator __last, __false_type) |
template<typename _InputIterator> | |
void | _M_range_insert_aux (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag) |
template<typename _ForwardIterator> | |
void | _M_range_insert_aux (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) |
void | _M_fill_insert (iterator __pos, size_type __n, const value_type &__x) |
iterator | _M_insert_aux (iterator __pos, const value_type &__x) |
void | _M_insert_aux (iterator __pos, size_type __n, const value_type &__x) |
template<typename _ForwardIterator> | |
void | _M_insert_aux (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, size_type __n) |
template<typename _InputIterator> | |
void | _M_range_initialize (_InputIterator __first, _InputIterator __last, std::input_iterator_tag) |
template<typename _ForwardIterator> | |
void | _M_range_initialize (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag) |
void | _M_push_back_aux (const value_type &) |
void | _M_push_front_aux (const value_type &) |
void | _M_pop_back_aux () |
void | _M_pop_front_aux () |
iterator | _M_reserve_elements_at_front (size_type __n) |
iterator | _M_reserve_elements_at_back (size_type __n) |
void | _M_new_elements_at_front (size_type __new_elements) |
void | _M_new_elements_at_back (size_type __new_elements) |
void | _M_reserve_map_at_back (size_type __nodes_to_add=1) |
void | _M_reserve_map_at_front (size_type __nodes_to_add=1) |
void | _M_reallocate_map (size_type __nodes_to_add, bool __add_at_front) |
Static Protected Member Functions | |
static size_t | _S_buffer_size () |
Private Types | |
typedef _Alloc::value_type | _Alloc_value_type |
typedef _Base::_Tp_alloc_type | _Tp_alloc_type |
Private Member Functions | |
__glibcxx_class_requires (_Tp, _SGIAssignableConcept) __glibcxx_class_requires2(_Tp | |
Private Attributes | |
_Alloc_value_type | |
_SameTypeConcept typedef _Deque_base< _Tp, _Alloc > | _Base |
Meets the requirements of a container, a reversible container, and a sequence, including the optional sequence requirements.
In previous HP/SGI versions of deque, there was an extra template parameter so users could control the node size. This extension turned out to violate the C++ standard (it can be detected using template template parameters), and it was removed.
Definition at line 612 of file stl_deque.h.
typedef _Alloc::value_type _GLIBCXX_STD::deque< _Tp, _Alloc >::_Alloc_value_type [private] |
Definition at line 615 of file stl_deque.h.
typedef pointer* _GLIBCXX_STD::deque< _Tp, _Alloc >::_Map_pointer [protected] |
Definition at line 637 of file stl_deque.h.
typedef _Base::_Tp_alloc_type _GLIBCXX_STD::deque< _Tp, _Alloc >::_Tp_alloc_type [private] |
Reimplemented from _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >.
Definition at line 620 of file stl_deque.h.
typedef _Alloc _GLIBCXX_STD::deque< _Tp, _Alloc >::allocator_type |
Reimplemented from _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 634 of file stl_deque.h.
typedef _Base::const_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::const_iterator |
Reimplemented from _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 629 of file stl_deque.h.
typedef _Tp_alloc_type::const_pointer _GLIBCXX_STD::deque< _Tp, _Alloc >::const_pointer |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 625 of file stl_deque.h.
typedef _Tp_alloc_type::const_reference _GLIBCXX_STD::deque< _Tp, _Alloc >::const_reference |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 627 of file stl_deque.h.
typedef std::reverse_iterator<const_iterator> _GLIBCXX_STD::deque< _Tp, _Alloc >::const_reverse_iterator |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 630 of file stl_deque.h.
typedef ptrdiff_t _GLIBCXX_STD::deque< _Tp, _Alloc >::difference_type |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 633 of file stl_deque.h.
typedef _Base::iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::iterator |
Reimplemented from _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 628 of file stl_deque.h.
typedef _Tp_alloc_type::pointer _GLIBCXX_STD::deque< _Tp, _Alloc >::pointer |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 624 of file stl_deque.h.
typedef _Tp_alloc_type::reference _GLIBCXX_STD::deque< _Tp, _Alloc >::reference |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 626 of file stl_deque.h.
typedef std::reverse_iterator<iterator> _GLIBCXX_STD::deque< _Tp, _Alloc >::reverse_iterator |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 631 of file stl_deque.h.
typedef size_t _GLIBCXX_STD::deque< _Tp, _Alloc >::size_type |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 632 of file stl_deque.h.
typedef _Tp _GLIBCXX_STD::deque< _Tp, _Alloc >::value_type |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 623 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::deque | ( | const allocator_type & | __a = allocator_type() |
) | [inline, explicit] |
Default constructor creates no elements.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 666 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::deque | ( | size_type | __n, | |
const value_type & | __value = value_type() , |
|||
const allocator_type & | __a = allocator_type() | |||
) | [inline, explicit] |
Create a deque with copies of an exemplar element.
n | The number of elements to initially create. | |
value | An element to copy. |
Definition at line 677 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::deque | ( | const deque< _Tp, _Alloc > & | __x | ) | [inline] |
Deque copy constructor.
x | A deque of identical element and allocator types. |
Definition at line 689 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::deque | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
const allocator_type & | __a = allocator_type() | |||
) | [inline] |
Builds a deque from a range.
first | An input iterator. | |
last | An input iterator. |
If the iterators are forward, bidirectional, or random-access, then this will call the elements' copy constructor N times (where N is distance(first,last)) and do no memory reallocation. But if only input iterators are used, then this will do at most 2N calls to the copy constructor, and logN memory reallocations.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 710 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::~deque | ( | ) | [inline] |
The dtor only erases the elements, and note that if the elements themselves are pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibilty.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 724 of file stl_deque.h.
_GLIBCXX_STD::deque< _Tp, _Alloc >::__glibcxx_class_requires | ( | _Tp | , | |
_SGIAssignableConcept | ||||
) | [private] |
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux | ( | _ForwardIterator | __first, | |
_ForwardIterator | __last, | |||
std::forward_iterator_tag | ||||
) | [inline, protected] |
Definition at line 1292 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
std::input_iterator_tag | ||||
) | [protected] |
Definition at line 205 of file deque.tcc.
References _GLIBCXX_STD::deque< _Tp, _Alloc >::begin(), _GLIBCXX_STD::deque< _Tp, _Alloc >::end(), _GLIBCXX_STD::deque< _Tp, _Alloc >::erase(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::insert().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_dispatch().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_dispatch | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
__false_type | ||||
) | [inline, protected] |
Definition at line 1275 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_dispatch | ( | _Integer | __n, | |
_Integer | __val, | |||
__true_type | ||||
) | [inline, protected] |
Definition at line 1266 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::assign().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_assign | ( | size_type | __n, | |
const value_type & | __val | |||
) | [inline, protected] |
Definition at line 1310 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_dispatch(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::assign().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_initialize | ( | const value_type & | __value | ) | [protected] |
Definition at line 263 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_fill_a(), std::_Destroy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, and _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_initialize_dispatch(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::deque().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_insert | ( | iterator | __pos, | |
size_type | __n, | |||
const value_type & | __x | |||
) | [protected] |
Definition at line 220 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_fill_a(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_back(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_front().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_insert_dispatch(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::insert().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_initialize_dispatch | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
__false_type | ||||
) | [inline, protected] |
Definition at line 1211 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_initialize_dispatch | ( | _Integer | __n, | |
_Integer | __x, | |||
__true_type | ||||
) | [inline, protected] |
Definition at line 1202 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::deque().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux | ( | iterator | __pos, | |
_ForwardIterator | __first, | |||
_ForwardIterator | __last, | |||
size_type | __n | |||
) | [protected] |
Definition at line 591 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_copy_a(), std::__uninitialized_copy_copy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_front(), std::advance(), std::copy(), std::copy_backward(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux | ( | iterator | __pos, | |
size_type | __n, | |||
const value_type & | __x | |||
) | [protected] |
Definition at line 505 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_copy_a(), std::__uninitialized_copy_fill(), std::__uninitialized_fill_copy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_front(), std::copy(), std::copy_backward(), std::fill(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
deque< _Tp, _Alloc >::iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux | ( | iterator | __pos, | |
const value_type & | __x | |||
) | [protected] |
Definition at line 472 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::back(), std::copy(), std::copy_backward(), _GLIBCXX_STD::deque< _Tp, _Alloc >::front(), _GLIBCXX_STD::deque< _Tp, _Alloc >::push_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::push_front(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_insert(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_insert_aux(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::insert().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_dispatch | ( | iterator | __pos, | |
_InputIterator | __first, | |||
_InputIterator | __last, | |||
__false_type | ||||
) | [inline, protected] |
Definition at line 1352 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_dispatch | ( | iterator | __pos, | |
_Integer | __n, | |||
_Integer | __x, | |||
__true_type | ||||
) | [inline, protected] |
Definition at line 1342 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::insert().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_back | ( | size_type | __new_elements | ) | [protected] |
Definition at line 701 of file deque.tcc.
References __throw_exception_again, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_back(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_reserve_elements_at_back().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_front | ( | size_type | __new_elements | ) | [protected] |
Definition at line 679 of file deque.tcc.
References __throw_exception_again, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_front(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_reserve_elements_at_front().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_pop_back_aux | ( | ) | [protected] |
Definition at line 391 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), and _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::pop_back().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_pop_front_aux | ( | ) | [protected] |
Definition at line 406 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), and _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::pop_front().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_push_back_aux | ( | const value_type & | ) | [protected] |
Definition at line 345 of file deque.tcc.
References __throw_exception_again, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_back().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::push_back().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_push_front_aux | ( | const value_type & | ) | [protected] |
Definition at line 368 of file deque.tcc.
References __throw_exception_again, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_front().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::push_front().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_check | ( | size_type | __n | ) | const [inline, protected] |
Definition at line 921 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::at().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_initialize | ( | _ForwardIterator | __first, | |
_ForwardIterator | __last, | |||
std::forward_iterator_tag | ||||
) | [protected] |
Definition at line 309 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_copy_a(), std::_Destroy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_initialize_map(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size(), std::advance(), and std::distance().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_initialize | ( | _InputIterator | __first, | |
_InputIterator | __last, | |||
std::input_iterator_tag | ||||
) | [protected] |
Definition at line 289 of file deque.tcc.
References __throw_exception_again, _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_initialize_map(), _GLIBCXX_STD::deque< _Tp, _Alloc >::clear(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::push_back().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_initialize_dispatch().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_insert_aux | ( | iterator | __pos, | |
_ForwardIterator | __first, | |||
_ForwardIterator | __last, | |||
std::forward_iterator_tag | ||||
) | [protected] |
Definition at line 427 of file deque.tcc.
References __throw_exception_again, std::__uninitialized_copy_a(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_front(), and std::distance().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_insert_aux | ( | iterator | __pos, | |
_InputIterator | __first, | |||
_InputIterator | __last, | |||
std::input_iterator_tag | ||||
) | [protected] |
Definition at line 418 of file deque.tcc.
References std::copy(), and std::inserter().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_insert_dispatch().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reallocate_map | ( | size_type | __nodes_to_add, | |
bool | __add_at_front | |||
) | [protected] |
Definition at line 723 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_allocate_map(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_map(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, std::copy(), std::copy_backward(), and std::max().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_reserve_map_at_back(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_reserve_map_at_front().
iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_back | ( | size_type | __n | ) | [inline, protected] |
Definition at line 1412 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_insert(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_insert_aux().
iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_elements_at_front | ( | size_type | __n | ) | [inline, protected] |
Definition at line 1402 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_insert(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_insert_aux().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_back | ( | size_type | __nodes_to_add = 1 |
) | [inline, protected] |
Definition at line 1440 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_back(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_push_back_aux().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_reserve_map_at_front | ( | size_type | __nodes_to_add = 1 |
) | [inline, protected] |
Definition at line 1448 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_front(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_push_front_aux().
static size_t _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size | ( | ) | [inline, static, protected] |
Definition at line 639 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_fill_initialize(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_new_elements_at_front(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_initialize(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::clear().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::assign | ( | _InputIterator | __first, | |
_InputIterator | __last | |||
) | [inline] |
Assigns a range to a deque.
first | An input iterator. | |
last | An input iterator. |
Note that the assignment completely changes the deque and that the resulting deque's size is the same as the number of elements assigned. Old data may be lost.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 766 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::assign | ( | size_type | __n, | |
const value_type & | __val | |||
) | [inline] |
Assigns a given value to a deque.
n | Number of elements to be assigned. | |
val | Value to be assigned. |
Definition at line 749 of file stl_deque.h.
const_reference _GLIBCXX_STD::deque< _Tp, _Alloc >::at | ( | size_type | __n | ) | const [inline] |
Provides access to the data contained in the deque.
n | The index of the element for which data should be accessed. |
std::out_of_range | If n is an invalid index. |
Definition at line 958 of file stl_deque.h.
reference _GLIBCXX_STD::deque< _Tp, _Alloc >::at | ( | size_type | __n | ) | [inline] |
Provides access to the data contained in the deque.
n | The index of the element for which data should be accessed. |
std::out_of_range | If n is an invalid index. |
Definition at line 940 of file stl_deque.h.
const_reference _GLIBCXX_STD::deque< _Tp, _Alloc >::back | ( | ) | const [inline] |
Returns a read-only (constant) reference to the data at the last element of the deque.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 997 of file stl_deque.h.
reference _GLIBCXX_STD::deque< _Tp, _Alloc >::back | ( | ) | [inline] |
Returns a read/write reference to the data at the last element of the deque.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 985 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux().
const_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::begin | ( | ) | const [inline] |
Returns a read-only (constant) iterator that points to the first element in the deque. Iteration is done in ordinary element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 791 of file stl_deque.h.
iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::begin | ( | ) | [inline] |
Returns a read/write iterator that points to the first element in the deque. Iteration is done in ordinary element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 783 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_fill_assign(), _GLIBCXX_STD::deque< _Tp, _Allocator >::deque(), _GLIBCXX_STD::deque< _Tp, _Allocator >::front(), _GLIBCXX_STD::deque< _Tp, _Alloc >::operator=(), and _GLIBCXX_STD::operator==().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::clear | ( | ) |
Erases all the elements. Note that this function only erases the elements, and that if the elements themselves are pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibilty.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 172 of file deque.tcc.
References std::_Destroy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_deallocate_node(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, and _GLIBCXX_STD::deque< _Tp, _Alloc >::_S_buffer_size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_initialize(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::erase().
bool _GLIBCXX_STD::deque< _Tp, _Alloc >::empty | ( | ) | const [inline] |
Returns true if the deque is empty. (Thus begin() would equal end().)
Definition at line 884 of file stl_deque.h.
const_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::end | ( | ) | const [inline] |
Returns a read-only (constant) iterator that points one past the last element in the deque. Iteration is done in ordinary element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 809 of file stl_deque.h.
iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::end | ( | ) | [inline] |
Returns a read/write iterator that points one past the last element in the deque. Iteration is done in ordinary element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 800 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_fill_assign(), _GLIBCXX_STD::deque< _Tp, _Allocator >::back(), _GLIBCXX_STD::deque< _Tp, _Allocator >::deque(), _GLIBCXX_STD::deque< _Tp, _Alloc >::operator=(), and _GLIBCXX_STD::operator==().
deque< _Tp, _Alloc >::iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::erase | ( | iterator | __first, | |
iterator | __last | |||
) |
Remove a range of elements.
first | Iterator pointing to the first element to be erased. | |
last | Iterator pointing to one past the last element to be erased. |
The user is cautioned that this function only erases the elements, and that if the elements themselves are pointers, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibilty.
Definition at line 132 of file deque.tcc.
References std::_Destroy(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_get_Tp_allocator(), _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::clear(), std::copy(), std::copy_backward(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
deque< _Tp, _Alloc >::iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::erase | ( | iterator | __position | ) |
Remove element at given position.
position | Iterator pointing to element to be erased. |
The user is cautioned that this function only erases the element, and that if the element is itself a pointer, the pointed-to memory is not touched in any way. Managing the pointer is the user's responsibilty.
Definition at line 111 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, std::copy(), std::copy_backward(), _GLIBCXX_STD::deque< _Tp, _Alloc >::pop_back(), _GLIBCXX_STD::deque< _Tp, _Alloc >::pop_front(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_fill_assign(), _GLIBCXX_STD::deque< _Tp, _Alloc >::operator=(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::resize().
const_reference _GLIBCXX_STD::deque< _Tp, _Alloc >::front | ( | ) | const [inline] |
Returns a read-only (constant) reference to the data at the first element of the deque.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 977 of file stl_deque.h.
reference _GLIBCXX_STD::deque< _Tp, _Alloc >::front | ( | ) | [inline] |
Returns a read/write reference to the data at the first element of the deque.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 969 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux().
allocator_type _GLIBCXX_STD::deque< _Tp, _Alloc >::get_allocator | ( | ) | const [inline] |
Get a copy of the memory allocation object.
Reimplemented from _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >.
Definition at line 774 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::insert | ( | iterator | __position, | |
_InputIterator | __first, | |||
_InputIterator | __last | |||
) | [inline] |
Inserts a range into the deque.
position | An iterator into the deque. | |
first | An input iterator. | |
last | An input iterator. |
Definition at line 1127 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::insert | ( | iterator | __position, | |
size_type | __n, | |||
const value_type & | __x | |||
) | [inline] |
Inserts a number of copies of given data into the deque.
position | An iterator into the deque. | |
n | Number of elements to be inserted. | |
x | Data to be inserted. |
Definition at line 1112 of file stl_deque.h.
deque< _Tp, _Alloc >::iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::insert | ( | iterator | position, | |
const value_type & | __x | |||
) |
Inserts given value into deque before specified iterator.
position | An iterator into the deque. | |
x | Data to be inserted. |
Definition at line 90 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::push_back(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::push_front().
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_fill_assign(), _GLIBCXX_STD::deque< _Tp, _Alloc >::operator=(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::resize().
size_type _GLIBCXX_STD::deque< _Tp, _Alloc >::max_size | ( | ) | const [inline] |
Returns the size() of the largest possible deque.
Definition at line 855 of file stl_deque.h.
deque< _Tp, _Alloc > & _GLIBCXX_STD::deque< _Tp, _Alloc >::operator= | ( | const deque< _Tp, _Alloc > & | __x | ) |
Deque assignment operator.
x | A deque of identical element and allocator types. |
Definition at line 69 of file deque.tcc.
References _GLIBCXX_STD::_Deque_base< _Tp, _Alloc >::_M_impl, _GLIBCXX_STD::deque< _Tp, _Alloc >::begin(), std::copy(), _GLIBCXX_STD::deque< _Tp, _Alloc >::end(), _GLIBCXX_STD::deque< _Tp, _Alloc >::erase(), _GLIBCXX_STD::deque< _Tp, _Alloc >::insert(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::size().
const_reference _GLIBCXX_STD::deque< _Tp, _Alloc >::operator[] | ( | size_type | __n | ) | const [inline] |
Subscript access to the data contained in the deque.
n | The index of the element for which data should be accessed. |
Definition at line 915 of file stl_deque.h.
reference _GLIBCXX_STD::deque< _Tp, _Alloc >::operator[] | ( | size_type | __n | ) | [inline] |
Subscript access to the data contained in the deque.
n | The index of the element for which data should be accessed. |
Definition at line 900 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::pop_back | ( | ) | [inline] |
Removes last element.
This is a typical stack operation. It shrinks the deque by one.
Note that no data is returned, and if the last element's data is needed, it should be retrieved before pop_back() is called.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 1078 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::erase().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::pop_front | ( | ) | [inline] |
Removes first element.
This is a typical stack operation. It shrinks the deque by one.
Note that no data is returned, and if the first element's data is needed, it should be retrieved before pop_front() is called.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 1057 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::erase().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::push_back | ( | const value_type & | __x | ) | [inline] |
Add data to the end of the deque.
x | Data to be added. |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 1036 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_range_initialize(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::insert().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::push_front | ( | const value_type & | __x | ) | [inline] |
Add data to the front of the deque.
x | Data to be added. |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 1015 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), and _GLIBCXX_STD::deque< _Tp, _Alloc >::insert().
const_reverse_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::rbegin | ( | ) | const [inline] |
Returns a read-only (constant) reverse iterator that points to the last element in the deque. Iteration is done in reverse element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 827 of file stl_deque.h.
reverse_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::rbegin | ( | ) | [inline] |
Returns a read/write reverse iterator that points to the last element in the deque. Iteration is done in reverse element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 818 of file stl_deque.h.
const_reverse_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::rend | ( | ) | const [inline] |
Returns a read-only (constant) reverse iterator that points to one before the first element in the deque. Iteration is done in reverse element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 844 of file stl_deque.h.
reverse_iterator _GLIBCXX_STD::deque< _Tp, _Alloc >::rend | ( | ) | [inline] |
Returns a read/write reverse iterator that points to one before the first element in the deque. Iteration is done in reverse element order.
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 836 of file stl_deque.h.
void _GLIBCXX_STD::deque< _Tp, _Alloc >::resize | ( | size_type | __new_size, | |
value_type | __x = value_type() | |||
) | [inline] |
Resizes the deque to the specified number of elements.
new_size | Number of elements the deque should contain. | |
x | Data with which new elements should be populated. |
Definition at line 870 of file stl_deque.h.
size_type _GLIBCXX_STD::deque< _Tp, _Alloc >::size | ( | ) | const [inline] |
Returns the number of elements in the deque.
Definition at line 850 of file stl_deque.h.
Referenced by _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_assign_aux(), _GLIBCXX_STD::deque< _Tp, _Allocator >::_M_fill_assign(), _GLIBCXX_STD::deque< _Tp, _Alloc >::_M_insert_aux(), _GLIBCXX_STD::deque< _Tp, _Alloc >::erase(), _GLIBCXX_STD::deque< _Tp, _Alloc >::operator=(), _GLIBCXX_STD::operator==(), and _GLIBCXX_STD::deque< _Tp, _Allocator >::resize().
void _GLIBCXX_STD::deque< _Tp, _Alloc >::swap | ( | deque< _Tp, _Alloc > & | __x | ) | [inline] |
Swaps data with another deque.
x | A deque of the same element and allocator types. |
Definition at line 1180 of file stl_deque.h.
Referenced by _GLIBCXX_STD::swap().
_GLIBCXX_STD::deque< _Tp, _Alloc >::_Alloc_value_type [private] |
Definition at line 617 of file stl_deque.h.
_SameTypeConcept typedef _Deque_base<_Tp, _Alloc> _GLIBCXX_STD::deque< _Tp, _Alloc >::_Base [private] |
Reimplemented in __gnu_debug_def::deque< _Tp, _Allocator >.
Definition at line 617 of file stl_deque.h.