# stl_deque.h File Reference

Go to the source code of this file.

## Classes

- class std::_Deque_base< _Tp, _Alloc >
- struct std::_Deque_iterator< _Tp, _Ref, _Ptr >
    A deque::iterator. More...
- class std::deque< _Tp, _Alloc >
    A standard container using fixed-size memory allocation and constant-time manipulation of elements at either end. More...

## Namespaces

- namespace std

## Defines

- #define _GLIBCXX_DEQUE_BUF_SIZE

## Functions

- size_t std::__deque_buf_size (size_t __size)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::copy (_Deque_iterator< _Tp, const _Tp &, const _Tp * > __first, _Deque_iterator< _Tp, const _Tp &, const _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::copy (_Deque_iterator< _Tp, _Tp &, _Tp * > __first, _Deque_iterator< _Tp, _Tp &, _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::copy_backward (_Deque_iterator< _Tp, const _Tp &, const _Tp * > __first, _Deque_iterator< _Tp, const _Tp &, const _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::copy_backward (_Deque_iterator< _Tp, _Tp &, _Tp * > __first, _Deque_iterator< _Tp, _Tp &, _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > void std::fill (const _Deque_iterator< _Tp, _Tp &, _Tp * > &__first, const _Deque_iterator< _Tp, _Tp &, _Tp * > &__last, const _Tp &__value)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::move (_Deque_iterator< _Tp, const _Tp &, const _Tp * > __first, _Deque_iterator< _Tp, const _Tp &, const _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::move (_Deque_iterator< _Tp, _Tp &, _Tp * > __first, _Deque_iterator< _Tp, _Tp &, _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::move_backward (_Deque_iterator< _Tp, const _Tp &, const _Tp * > __first, _Deque_iterator< _Tp, const _Tp &, const _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp > _Deque_iterator< _Tp, _Tp
  &, _Tp * > std::move_backward (_Deque_iterator< _Tp, _Tp &, _Tp * > __first, _Deque_iterator< _Tp, _Tp &, _Tp * > __last, _Deque_iterator< _Tp, _Tp &, _Tp * > __result)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator!= (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator!= (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator!= (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > _Deque_iterator< _Tp, _Ref, _Ptr > std::operator+ (ptrdiff_t __n, const _Deque_iterator< _Tp, _Ref, _Ptr > &__x)
- template<typename _Tp , typename _Ref , typename _Ptr > _Deque_iterator< _Tp, _Ref,
  _Ptr >::difference_type std::operator- (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > _Deque_iterator< _Tp, _RefL,
  _PtrL >::difference_type std::operator- (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator< (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator< (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator< (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator<= (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator<= (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator<= (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator== (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator== (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator== (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator> (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator> (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator> (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Ref , typename _Ptr > bool std::operator>= (const _Deque_iterator< _Tp, _Ref, _Ptr > &__x, const _Deque_iterator< _Tp, _Ref, _Ptr > &__y)
- template<typename _Tp , typename _RefL , typename _PtrL , typename _RefR , typename _PtrR > bool std::operator>= (const _Deque_iterator< _Tp, _RefL, _PtrL > &__x, const _Deque_iterator< _Tp, _RefR, _PtrR > &__y)
- template<typename _Tp , typename _Alloc > bool std::operator>= (const deque< _Tp, _Alloc > &__x, const deque< _Tp, _Alloc > &__y)
- template<typename _Tp , typename _Alloc > void std::swap (deque< _Tp, _Alloc > &__x, deque< _Tp, _Alloc > &__y)

## Detailed Description

This is an internal header file, included by other library headers. You should not attempt to use it directly.

Definition in file stl_deque.h.

## Define Documentation

#define _GLIBCXX_DEQUE_BUF_SIZE

This function controls the size of memory nodes.

Parameters:

  | size | The size of an element.

Returns:
  The number (not byte size) of elements per node.

This function started off as a compiler kludge from SGI, but seems to be a useful wrapper around a repeated constant expression. The 512 is tunable (and no other code needs to change), but no investigation has been done since inheriting the SGI code. Touch _GLIBCXX_DEQUE_BUF_SIZE only if you know what you are doing, however: changing it breaks the binary compatibility!!

Definition at line 82 of file stl_deque.h.