Home | History | Annotate | Download | only in bits

Lines Matching defs:deque

0 // Deque implementation -*- C++ -*-
54 * Do not attempt to use it directly. @headername{deque}
94 * @brief A deque::iterator.
97 * deque is actually passed off to this class. A deque holds two
428 * Deque base class. This class provides the unified face for %deque's
434 * (Deque handles that itself.) Only/All memory management is performed
484 //This struct encapsulates the implementation of the std::deque
648 * In previous HP/SGI versions of deque, there was an extra template
653 * Here's how a deque<Tp> manages memory. Each deque has 4 members:
674 * the initial number of elements in the deque is small, the
692 * means that an empty deque must have one node, a deque with <N
694 * deque with N through (2N-1) elements must have two nodes, etc.
709 * Here's the magic: nothing in deque is @b aware of the discontiguous
714 * All the implementation routines for deque itself work only through the
719 class deque : protected _Deque_base<_Tp, _Alloc>
771 deque()
775 * @brief Creates a %deque with no elements.
779 deque(const allocator_type& __a)
784 * @brief Creates a %deque with default constructed elements.
787 * This constructor fills the %deque with @a n default
791 deque(size_type __n)
796 * @brief Creates a %deque with copies of an exemplar element.
801 * This constructor fills the %deque with @a n copies of @a value.
803 deque(size_type __n, const value_type& __value,
809 * @brief Creates a %deque with copies of an exemplar element.
814 * This constructor fills the %deque with @a n copies of @a value.
817 deque(size_type __n, const value_type& __value = value_type(),
824 * @brief %Deque copy constructor.
825 * @param x A %deque of identical element and allocator types.
827 * The newly-created %deque uses a copy of the allocation object used
830 deque(const deque& __x)
838 * @brief %Deque move constructor.
839 * @param x A %deque of identical element and allocator types.
841 * The newly-created %deque contains the exact contents of @a x.
842 * The contents of @a x are a valid, but unspecified %deque.
844 deque(deque&& __x)
848 * @brief Builds a %deque from an initializer list.
852 * Create a %deque consisting of copies of the elements in the
858 deque(initializer_list<value_type> __l,
868 * @brief Builds a %deque from a range.
873 * Create a %deque consisting of copies of the elements from [first,
883 deque(_InputIterator __first, _InputIterator __last,
897 ~deque()
901 * @brief %Deque assignment operator.
902 * @param x A %deque of identical element and allocator types.
907 deque&
908 operator=(const deque& __x);
912 * @brief %Deque move assignment operator.
913 * @param x A %deque of identical element and allocator types.
915 * The contents of @a x are moved into this deque (without copying).
916 * @a x is a valid, but unspecified %deque.
918 deque&
919 operator=(deque&& __x)
929 * @brief Assigns an initializer list to a %deque.
932 * This function fills a %deque with copies of the elements in the
935 * Note that the assignment completely changes the %deque and that the
936 * resulting %deque's size is the same as the number of elements
939 deque&
948 * @brief Assigns a given value to a %deque.
952 * This function fills a %deque with @a n copies of the given
954 * %deque and that the resulting %deque's size is the same as
962 * @brief Assigns a range to a %deque.
966 * This function fills a %deque with copies of the elements in the
969 * Note that the assignment completely changes the %deque and that the
970 * resulting %deque's size is the same as the number of elements
983 * @brief Assigns an initializer list to a %deque.
986 * This function fills a %deque with copies of the elements in the
989 * Note that the assignment completely changes the %deque and that the
990 * resulting %deque's size is the same as the number of elements
1006 * %deque. Iteration is done in ordinary element order.
1014 * element in the %deque. Iteration is done in ordinary element order.
1022 * element in the %deque. Iteration is done in ordinary
1031 * the last element in the %deque. Iteration is done in
1040 * last element in the %deque. Iteration is done in reverse
1049 * to the last element in the %deque. Iteration is done in
1058 * before the first element in the %deque. Iteration is done
1067 * to one before the first element in the %deque. Iteration is
1077 * element in the %deque. Iteration is done in ordinary element order.
1085 * the last element in the %deque. Iteration is done in
1094 * to the last element in the %deque. Iteration is done in
1103 * to one before the first element in the %deque. Iteration is
1112 /** Returns the number of elements in the %deque. */
1117 /** Returns the size() of the largest possible %deque. */
1124 * @brief Resizes the %deque to the specified number of elements.
1125 * @param new_size Number of elements the %deque should contain.
1127 * This function will %resize the %deque to the specified
1129 * %deque's current size the %deque is truncated, otherwise
1144 * @brief Resizes the %deque to the specified number of elements.
1145 * @param new_size Number of elements the %deque should contain.
1148 * This function will %resize the %deque to the specified
1150 * %deque's current size the %deque is truncated, otherwise the
1151 * %deque is extended and new elements are populated with given
1166 * @brief Resizes the %deque to the specified number of elements.
1167 * @param new_size Number of elements the %deque should contain.
1170 * This function will %resize the %deque to the specified
1172 * %deque's current size the %deque is truncated, otherwise the
1173 * %deque is extended and new elements are populated with given
1192 { std::__shrink_to_fit<deque>::_S_do_it(*this); }
1196 * Returns true if the %deque is empty. (Thus begin() would
1205 * @brief Subscript access to the data contained in the %deque.
1220 * @brief Subscript access to the data contained in the %deque.
1240 __throw_out_of_range(__N("deque::_M_range_check"));
1245 * @brief Provides access to the data contained in the %deque.
1252 * is first checked that it is in the range of the deque. The
1263 * @brief Provides access to the data contained in the %deque.
1270 * checked that it is in the range of the deque. The function throws
1282 * element of the %deque.
1290 * element of the %deque.
1298 * %deque.
1310 * element of the %deque.
1322 * @brief Add data to the front of the %deque.
1326 * element at the front of the %deque and assigns the given
1327 * data to it. Due to the nature of a %deque this operation
1353 * @brief Add data to the end of the %deque.
1357 * element at the end of the %deque and assigns the given data
1358 * to it. Due to the nature of a %deque this operation can be
1387 * This is a typical stack operation. It shrinks the %deque by one.
1408 * This is a typical stack operation. It shrinks the %deque by one.
1428 * @brief Inserts an object in %deque before specified iterator.
1429 * @param position An iterator into the %deque.
1442 * @brief Inserts given value into %deque before specified iterator.
1443 * @param position An iterator into the %deque.
1455 * @brief Inserts given rvalue into %deque before specified iterator.
1456 * @param position An iterator into the %deque.
1468 * @brief Inserts an initializer list into the %deque.
1469 * @param p An iterator into the %deque.
1473 * initializer_list @a l into the %deque before the location
1482 * @brief Inserts a number of copies of given data into the %deque.
1483 * @param position An iterator into the %deque.
1495 * @brief Inserts a range into the %deque.
1496 * @param position An iterator into the %deque.
1501 * [first,last) into the %deque before the location specified
1520 * shorten the %deque by one.
1539 * shorten the %deque accordingly.
1550 * @brief Swaps data with another %deque.
1551 * @param x A %deque of the same element and allocator types.
1559 swap(deque& __x)
1611 * @brief Fills the deque with whatever is in [first,last).
1633 * @brief Fills the %deque with copies of value.
1637 * but none of the %deque's elements have yet been constructed.
1646 // called by deque(n).
1804 // Called by ~deque().
1881 * (And consequently, %deque iterators.)
1906 * @brief Deque equality comparison.
1907 * @param x A %deque.
1908 * @param y A %deque of the same type as @a x.
1917 operator==(const deque<_Tp, _Alloc>& __x,
1918 const deque<_Tp, _Alloc>& __y)
1923 * @brief Deque ordering relation.
1924 * @param x A %deque.
1925 * @param y A %deque of the same type as @a x.
1935 operator<(const deque<_Tp, _Alloc>& __x,
1936 const deque<_Tp, _Alloc>& __y)
1943 operator!=(const deque<_Tp, _Alloc>& __x,
1944 const deque<_Tp, _Alloc>& __y)
1950 operator>(const deque<_Tp, _Alloc>& __x,
1951 const deque<_Tp, _Alloc>& __y)
1957 operator<=(const deque<_Tp, _Alloc>& __x,
1958 const deque<_Tp, _Alloc>& __y)
1964 operator>=(const deque<_Tp, _Alloc>& __x,
1965 const deque<_Tp, _Alloc>& __y)
1968 /// See std::deque::swap().
1971 swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)