The OpenNET Project / Index page

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

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

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

stack (3)
  • >> stack (3) ( Solaris man: Библиотечные вызовы )
  • stack (9) ( FreeBSD man: Ядро )
  • Ключ stack обнаружен в базе ключевых слов.
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         stack
    
          - A container adapter that behaves like a stack  (last  in,
         first out).
    
    
    
    SYNOPSIS
         #include <stack>
         template <class T, class Container = deque<T> >
         class stack ;
    
    
    
    DESCRIPTION
         The stack container adapter causes  a  container  to  behave
         like a "last in, first out" (LIFO) stack. The last item that
         was put ("pushed") onto the stack is the first item  removed
         ("popped"  off).  The  stack can adapt to any container that
         includes the operations back(), push_back(), and pop_back().
         In particular, deque, list, and vector can be used.
    
    
    
    INTERFACE
         template <class T, class Container = deque<T> >
         class stack {
         public:
         // typedefs
         typedef typename Container::value_type value_type;
         typedef typename Container::size_type size_type;
         typedef Container container_type;
         // Construct
         explicit stack (const Container& = Container());
         // Accessors
         bool empty () const;
         size_type size () const;
         value_type& top ();
         const value_type& top () const;
         void push (const value_type&);
         void pop ();
         };
    
         // Non-member Operators
         template <class T, class Container>
         bool operator== (const stack<T, Container>&,
         const stack<T, Container>&);
         template <class T, class Container>
         bool operator!= (const stack<T, Container>&,
         const stack<T, Container>&);
         template <class T, class Container>
         bool operator< (const stack<T, Container>&,
         const stack<T, Container>&);
         template <class T, class Container>
         bool operator> (const stack<T, Container>&,
         const stack<T, Container>&);
         template <class T, class Container>
         bool operator<= (const stack<T, Container>&,
         const stack<T, Container>&);
         template <class T, class Container>
         bool operator>= (const stack<T, Container>&,
         const stack<T, Container>&);
    
    
    
    CONSTRUCTORS
         explicit
         stack(const Container& = Container());
    
    
            Constructs an empty stack. The stack uses  the  allocator
            alloc for all storage management.
    
    
    
    MEMBER FUNCTIONS
         bool
         empty() const;
    
    
            Returns true if the stack is empty, otherwise false.
    
    
    
         void
         pop();
    
    
            Removes the item at the top of the stack.
    
    
    
         void
         push(const value_type& x);
    
    
            Pushes x onto the stack.
    
    
    
         size_type
         size() const;
    
    
            Returns the number of elements on the stack.
    
    
    
         value_type&
         top();
    
    
            Returns a reference to the item at the top of the  stack.
            This  is the last item pushed onto the stack unless pop()
            has been called since then.
    
    
    
         const value_type&
         top() const;
    
    
            Returns a constant reference to the item at  the  top  of
            the stack as a const value_type.
    
    
    
    NON-MEMBER OPERATORS
         template <class T, class Container>
         bool operator==(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns true if x is the same as y.
    
    
    
         template <class T, class Container>
         bool operator!=(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns !(x==y).
    
         template <class T, class Container>
         bool operator<(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns true if the stack defined by  the  elements  con-
            tained  in  x  is  lexicographically  less than the stack
            defined by the elements of y.
    
    
    
         template <class T, class Container>
         bool operator>(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns y < x.
    
    
    
         template <class T, class Container>
         bool operator<=(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns !(y < x).
    
    
    
         template <class T, class Container>
         bool operator>=(const stack<T, Container>& x,
         const stack<T, Container>& y);
    
    
            Returns !(x < y).
    
    
    
    EXAMPLE
         //
         // stack.cpp
         //
         #include <stack>
         #include <vector>
         #include <deque>
         #include <string>
         #include <iostream>
         using namespace std;
    
         int main(void)
          {
         // Make a stack using a vector container
         stack<int,vector<int> > s;
         // Push a couple of values on the stack
         s.push(1);
         s.push(2);
         cout << s.top() << endl;
    
         // Now pop them off
         s.pop();
         cout << s.top() << endl;
         s.pop();
    
         // Make a stack of strings using a deque
         stack<string,deque<string> > ss;
         // Push a bunch of strings on then pop them off
         int i;
         for (i = 0; i < 10; i++)
            {
            ss.push(string(i+1,'a'));
            cout << ss.top() << endl;
            }
         for (i = 0; i < 10; i++)
            {
            cout << ss.top() << endl;
            ss.pop();
            }
    
         return 0;
          }
    
         Program Output
    
    
    
         2
         1
         a
         aa
         aaa
         aaaa
         aaaaa
         aaaaaa
         aaaaaaa
         aaaaaaaa
         aaaaaaaaa
         aaaaaaaaaa
         aaaaaaaaaa
         aaaaaaaaa
         aaaaaaaa
         aaaaaaa
         aaaaaa
         aaaaa
         aaaa
         aaa
         aa
         a
    
    
    
    WARNINGS
         If  your  compiler  does  not  support  template   parameter
         defaults,  you  are  required to supply a template parameter
         for Container. For example:
    
         You would not be able to write,
    
         stack<int> var;
    
         Instead, you would have to write,
    
         stack<int, deque<int> > var;
    
         If your compiler does not support namespaces,  then  you  do
         not need the using declaration for std.
    
    
    
    SEE ALSO
         allocator, Containers, deque, list, vector
    
    
    
    


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




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

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