Template Class stack<T, Cont>

Synopsis

#include "boost/stack.hpp"
    
template <class T, class Cont = std::vector<T> >
class boost::stack
{
public:
  typedef typename Cont::value_type      value_type;
  typedef typename Cont::reference       reference;
  typedef typename Cont::const_reference const_reference;
  typedef typename Cont::size_type       size_type;
  typedef Cont                           container_type;
  typedef typename Cont::iterator        iterator;
  typedef typename Cont::const_iterator  const_iterator;

  explicit stack(Cont const& cont = Cont());

  bool              empty() const;
  size_type         size() const;
  void              push(value_type const& val);
  void              pop();
  value_type const& top() const;
  value_type&       top();

  iterator       begin();
  iterator       end();
  const_iterator begin() const;
  const_iterator end() const;
};
    

Description

The class stack is actually not really a priority queue in the normal sense. However, if you assume that the element which is stored the shortest time in the stack has the largest priority, you can view this class as a priority queue: It provides access to the element which is stored the shortest time in the stack (ie. stack has "last in, first out" semantics).

The class stack is a replacement for the standard class std::stack which provides logical inspectabiliy in addition to the methods provided by the standard version. If you only need functionality provided by the standard class then you can use the standard class as well.

For a description of the methods of stack<T, Cont> see the description of common methods or the documentation of the standard class std::stack.

See Also

heap(3), heap-common(3)
Copyright © 1999 Dietmar Kühl (dietmar.kuehl@claas-solutions.de)
Claas Solutions GmbH