The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

deque (3)
  • >> deque (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         deque
    
          - A sequence that  supports  random  access  iterators  and
         efficient insertion/deletion at both beginning and end.
    
    
    
    SYNOPSIS
         #include <deque>
    
         template <class T, class Allocator = allocator<T> >
         class deque;
    
    
    
    DESCRIPTION
         deque<T,_Allocator> is a type of sequence that supports ran-
         dom  access  iterators. It supports constant time insert and
         erase operations at the beginning or the  end  of  the  con-
         tainer.  Insertion and erase in the middle take linear time.
         Storage management is  handled  by  the  Allocator  template
         parameter.
    
         Any type used for the template parameter T must include  the
         following (where T is the type, t is a value of T and u is a
         const value of T):
    
         Copy constructors    T(t) and T(u)
    
    
    
         Destructor   t.~T()
    
    
    
         Address of   &t and &u yielding T* and const T* respectively
    
    
    
         Assignment   t = a where a is a (possibly const) value of T
    
    
    
    INTERFACE
         template <class T, class Allocator = allocator<T> >
         class deque {
    
         public:
    
          // Types
    
           class iterator;
           class const_iterator;
    
           typedef T value_type;
           typedef Allocator allocator_type;
           typedef typename
                   Allocator::reference        reference;
           typedef typename
                   Allocator::const_reference  const_reference;
           typedef typename
                   Allocator::size_type        size_type;
           typedef typename
                   Allocator::difference_type  difference_type;
           typedef typename
                   std::reverse_iterator<iterator> reverse_iterator;
           typedef typename
                   std::reverse_iterator<const_iterator>
                                         const_reverse_iterator;
    
          // Construct/Copy/Destroy
    
           explicit deque (const Allocator& = Allocator());
           explicit deque (size_type);
           deque (size_type, const T& value,
                  const Allocator& = Allocator ());
           deque (const deque<T,Allocator>&);
           template <class InputIterator>
            deque (InputIterator, InputIterator,
                   const Allocator& = Allocator ());
            ~deque ();
           deque<T,Allocator>& operator=
                                (const deque<T,Allocator>&);
           template <class InputIterator>
            void assign (InputIterator, InputIterator);
           void assign (size_type, const T&);
           allocator_type get allocator () const;
    
          // Iterators
    
           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;
    
         // Capacity
    
           size_type size () const;
           size_type max_size () const;
           void resize (size_type);
           void resize (size_type, T);
           bool empty () const;
    
         // Element access
    
           reference operator[] (size_type);
           const_reference operator[] (size_type) const;
           reference at (size_type);
           const_reference at (size_type) const;
           reference front ();
           const_reference front () const;
           reference back ();
           const_reference back () const;
    
          // Modifiers
    
           void push_front (const T&);
           void push_back (const T&);
           iterator insert (iterator, const T&);
           void insert (iterator, size_type, const T&);
           template <class InputIterator>
            void insert (iterator, InputIterator, InputIterator);
    
           void pop_front ();
           void pop_back ();
    
           iterator erase (iterator);
           iterator erase (iterator, iterator);
           void swap (deque<T, Allocator>&);
           void clear();
         };
    
          // Non-member Operators
    
         template <class T, class Allocator>
         bool operator== (const deque<T, Allocator>&,
                          const deque<T, Allocator>&);
    
         template <class T, class Allocator>
         bool operator!= (const deque<T, Allocator>&,
                          const deque<T, Allocator>&);
    
    
         template <class T, class Allocator>
         bool operator< (const deque<T, Allocator>&,
                         const deque<T, Allocator>&);
    
         template <class T, class Allocator>
         bool operator> (const deque<T, Allocator>&,
                         const deque<T, Allocator>&);
    
         template <class T, class Allocator>
         bool operator<= (const deque<T, Allocator>&,
                         const deque<T, Allocator>&);
    
         template <class T, class Allocator>
         bool operator>= (const deque<T, Allocator>&,
                         const deque<T, Allocator>&);
    
    
         // Specialized Algorithms
    
         template <class T, class Allocator>
         voice swap (deque<T, Allocator>&, deque<T, Allocator>&);
    
    
    
    CONSTRUCTORS
         explicit
         deque(const Allocator& alloc = Allocator());
    
    
            The default constructor. Creates a  deque  of  zero  ele-
            ments. The deque uses the allocator alloc for all storage
            management.
    
    
    
         explicit
         deque(size_type n);
    
    
            Creates a list of length n, containing n  copies  of  the
            default value for type T. T must have a default construc-
            tor. The deque uses the  allocator  Allocator()  for  all
            storage management.
    
    
    
         deque(size_type n, const T& value,
               const Allocator& alloc = Allocator());
    
    
            Creates a list of length n, containing n copies of value.
            The  deque  uses  the  allocator  alloc  for  all storage
            management.
    
    
    
         deque(const deque<T, Allocator>& x);
    
    
            Creates a copy of x.
    
    
    
         template <class InputIterator>
         deque(InputIterator first, InputIterator last,
               const Allocator& alloc = Allocator());
    
    
            Creates a deque of length last - first, filled  with  all
            values  obtained  by  dereferencing the InputIterators on
            the range [first, last). The  deque  uses  the  allocator
            alloc for all storage management.
    
    
    
    DESTRUCTORS
         ~deque();
    
    
            Releases any allocated memory for self.
    
    
    
    ALLOCATORS
         allocator
         allocator_type get_allocator() const;
    
    
            Returns a copy of the allocator used by self for  storage
            management.
    
    
    
    ITERATORS
         iterator begin();
    
    
            Returns a random access iterator that points to the first
            element.
    
    
    
         const_iterator begin() const;
    
    
            Returns a constant random access iterator that points  to
            the first element.
    
    
    
         iterator end();
    
    
            Returns a random  access  iterator  that  points  to  the
            past-the-end value.
    
    
    
         const_iterator end() const;
    
    
            Returns a constant random access iterator that points  to
            the past-the-end value.
    
    
    
         reverse_iterator rbegin();
    
    
            Returns a random access reverse_iterator that  points  to
            the past-the-end value.
    
    
    
         const_reverse_iterator rbegin() const;
    
    
            Returns a constant random access  reverse  iterator  that
            points to the past-the-end value.
    
    
    
         reverse_iterator rend();
    
    
            Returns a random access reverse_iterator that  points  to
            the first element.
    
    
         const_reverse_iterator rend() const;
    
    
            Returns a constant random access  reverse  iterator  that
            points to the first element.
    
    
    
    ASSIGNMENT OPERATORS
         deque<T, Allocator>&
         operator=(const deque<T, Allocator>& x);
    
    
            Erases all elements in self, then  inserts  into  self  a
            copy of each element in x. Returns a reference to self.
    
    
    
    REFERENCE OPERATORS
         reference operator[](size_type n);
    
    
            Returns a reference to element n of  self.    The  result
            can  be  used as an lvalue. The index n must be between 0
            and the size() - 1..
    
    
    
         const_reference operator[](size_type n) const;
    
    
            Returns a constant reference to element n  of  self.  The
            index n must be between 0 and the size() - 1.
    
    
    
    MEMBER FUNCTIONS
         template <class InputIterator>
         void
         assign(InputIterator first, InputIterator last);
    
    
            Erases all elements contained in self, then  inserts  new
            elements from the range [first, last).
    
    
         void
         assign(size_type n, const T& t);
    
    
            Erases all elements contained in  self,  then  inserts  n
            instances of the value of t.
    
    
    
         reference
         at(size_type n);
    
    
            Returns a reference to element n of self. The result  can
            be  used  as an lvalue. The index n must be between 0 and
            the size() - 1.
    
    
    
         const_reference
         at(size_type) const;
    
    
            Returns a constant reference to element n  of  self.  The
            index n must be between 0 and the size() - 1.
    
    
    
         reference
         back();
    
    
            Returns a reference to the last element.
    
    
    
         const_reference
         back() const;
    
    
            Returns a constant reference to the last element.
    
    
    
         void
         clear();
    
    
            Erases all elements from the self.
    
    
    
         bool
         empty() const;
    
    
            Returns true if the size of self is zero.
    
    
    
         reference
         front();
    
    
            Returns a reference to the first element.
    
    
    
         const_reference
         front() const;
    
    
            Returns a constant reference to the first element.
    
    
    
         iterator
         erase(iterator first, iterator last);
    
    
            Deletes the elements in the range (first, last).  Returns
            an  iterator  pointing  to the element following the last
            deleted element, or end() if there were no elements after
            the deleted range.
    
    
    
         iterator
         erase(iterator position);
    
    
            Removes the element pointed to by  position.  Returns  an
            iterator  pointing  to  the element following the deleted
            element, or end() if there were  no  elements  after  the
            deleted range.
    
    
    
         iterator
         insert(iterator position, const T& x);
    
    
            Inserts x before position. The return value points to the
            inserted x.
    
         void
         insert(iterator position, size_type n, const T& x);
    
    
            Inserts n copies of x before position.
    
    
    
         template <class InputIterator>
         void
         insert(iterator position, InputIterator first,
                InputIterator last);
    
    
            Inserts copies of the elements in the range (first, last]
            before position.
    
    
    
         size_type
         max_size() const;
    
    
            Returns size() of the largest possible deque.
    
    
    
         void
         pop_back();
    
    
            Removes the last element. Note that  this  function  does
            not return the element.
    
    
    
         void
         pop_front();
    
    
            Removes the first element. Note that this  function  does
            not return the element.
    
    
    
         void
         push_back(const T& x);
    
    
            Appends a copy of x to the end.
    
    
         void
         push_front(const T& x);
    
    
            Inserts a copy of x at the front.
    
    
    
         void
         resize(size_type sz);
    
    
            Alters the size of self. If the new size (sz) is  greater
            than  the  current  size,  then  sz-size()  copies of the
            default value of type T are inserted at the  end  of  the
            deque.  If the new size is smaller than the current capa-
            city, then the deque is truncated  by  erasing  size()-sz
            elements off the end. Otherwise, no action is taken. Type
            T must have a default constructor.
    
    
    
         void
         resize(size_type sz, T c);
    
    
            Alters the size of self. If the new size (sz) is  greater
            than the current size, then sz-size() c's are inserted at
            the end of the deque. If the new size is smaller than the
            current  capacity, then the deque is truncated by erasing
            size()-sz elements off the end. Otherwise, no  action  is
            taken.
    
    
    
         size_type
         size() const;
    
    
            Returns the number of elements.
    
    
    
         void
         swap(deque<T,Allocator>& x);
    
    
            Exchanges self with x.
    
    
    
    NON-MEMBER FUNCTIONS
         template <class T, class Allocator>
         bool operator==(const deque<T, Allocator>& x,
                         const deque<T, Allocator>& y);
    
    
            Equality operator. Returns true if x is the same as y.
    
    
    
         template <class T, class Allocator>
         bool operator!=(const deque<T, Allocator>& x,
                         const deque<T, Allocator>& y);
    
    
             Returns true if x is not the same as y.
    
    
    
         template <class T, class Allocator>
         bool operator<(const deque<T, Allocator>& x,
                        const deque<T, Allocator>& y);
    
    
            Returns true if the elements contained in x  are  lexico-
            graphically less than the elements contained in y.
    
    
    
         template <class T, class Allocator>
         bool operator>(const deque<T, Allocator>& x,
                        const deque<T, Allocator>& y);
    
    
            Returns true if the elements contained in x  are  lexico-
            graphically greater than the elements contained in y.
    
    
    
         template <class T, class Allocator>
         bool operator<=(const deque<T, Allocator>& x,
                        const deque<T, Allocator>& y);
    
    
            Returns true if the elements contained in x  are  lexico-
            graphically  less than or equal to the elements contained
            in y.
    
    
    
         template <class T, class Allocator>
         bool operator>=(const deque<T, Allocator>& x,
                        const deque<T, Allocator>& y);
    
    
            Returns true if the elements contained in x  are  lexico-
            graphically  greater  than  or equal to the elements con-
            tained in y.
    
    
    
         template <class T, class Allocator>
         bool operator<(const deque<T, Allocator>& x,
                        const deque<T, Allocator>& y);
    
    
            Returns true if the elements contained in x  are  lexico-
            graphically less than the elements contained in y.
    
    
    
    SPECIALIZED ALGORITHMS
         template <class T, class Allocator>
         void swap(deque<T, Allocator>& a, deque<T, Allocator>& b);
    
    
            Swaps the contents of a and b.
    
    
    
    EXAMPLE
         //
         // deque.cpp
         //
          #include <deque>
          #include <string>
          #include <iostream>
         using namespace std;
    
         deque<string, allocator> deck_of_cards;
         deque<string, allocator> current_hand;
    
         void initialize_cards(deque<string, allocator>& cards) {
           cards.push_front("aceofspades");
           cards.push_front("kingofspades");
           cards.push_front("queenofspades");
           cards.push_front("jackofspades");
           cards.push_front("tenofspades");
            // etc.
          }
    
         template <class It, class It2>
         void print_current_hand(It start, It2 end)
          {
           while (start < end)
           cout << *start++ << endl;
          }
    
    
         template <class It, class It2>
         void deal_cards(It, It2 end) {
           for (int i=0;i<5;i++) {
             current_hand.insert(current_hand.begin(),*end);
             deck_of_cards.erase(end++);
            }
          }
    
         void play_poker() {
           initialize_cards(deck_of_cards);
           deal_cards(current_hand.begin(),deck_of_cards.begin());
          }
    
         int main()
          {
           play_poker();
           print_current_hand(current_hand.begin(),current_hand.end());
           return 0;
          }
    
         Program Output
    
    
    
         aceofspades
         kingofspades
         queenofspades
         jackofspades
         tenofspades
    
    
    
    WARNINGS
         Member function templates are used in all containers  in  by
         the  Standard  Template  Library.  An example of this is the
         constructor for deque<T,_Allocator>, which takes two templa-
         tized iterators:
    
    
         template <class InputIterator>
         deque (InputIterator, InputIterator);
    
         deque also has an insert function of this type. These  func-
         tions,  when  not  restricted by compiler limitations, allow
         you to use any type of input iterator as arguments. For com-
         pilers  that  do  not support this feature, substitute func-
         tions allow you to use an iterator obtained  from  the  same
         type  of  container as the one you are constructing (or cal-
         ling a member function on), or you can use a pointer to  the
         type of element you have in the container.
    
         For example, if your compiler does not support member  func-
         tion  templates  you  can construct a deque in the following
         two ways:
    
    
         int intarray[10];
         deque<int> first_deque(intarray, intarray + 10);
         deque<int> second_deque(first_deque.begin(),
                                first_deque.end());
         But not this way:
    
         deque<long> long_deque(first_deque.begin(),
                                          first_deque.end());
    
         since the long_deque and first_deque are not the same type.
    
         Additionally, many compilers do not support default template
         arguments. If your compiler is one of these, you always need
         to supply the Allocator template argument. For instance, you
         have to write:
    
         deque<int, allocator<int> >
    
         instead of:
    
         deque<int>
    
         If your compiler does not support namespaces,  then  you  do
         not need the using declaration for std.
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру