Jump to content

Stack (C++)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Theunamedguy (talk | contribs) at 22:07, 25 April 2013 (Overview of Functions). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A stack is a standard C++ container adaptor, designed to be used in a LIFO context[1], and is implemented as an interface/wrapper to the type passed to it as a template argument, which defaults to a deque.[2] It is so simple, that it can be described just by an sample interface:


template<class T, Class C = deque<T> >
class std::stack {
protected:
C c;
public:
typedef typename C::value_type value_type;
typedef typename C::size_type size_type;
typedef C container_type;
explicit stack(const C& a = C()) : c(a){} // Inherit the constructor
bool empty() const { return c.empty(); }
size_type size() const { return c.size(); }
value_type& top() const { return c.back(); }
const value_type& top() const { return c.back(); }
void push(const value_type& n) { c.push_back(n); }
void pop() { c.pop_back(); }
};

[3]

Overview of Functions

Function Description
Element Access top Returns a reference to the top element of the stack, does not pop it
Modifiers push Push an element onto the stack

pop || Pop top element off stack ||

size Return number of elements in stack

References

  1. ^ "stack - C++ Reference". cplusplus.com. Retrieved 25 April 2013.
  2. ^ Stroustrup, Bjarne (1997). C++ Programming Language. Addison-Wesley. pp. 475–476. ISBN 0201889544.
  3. ^ Stroustrup, Bjarne (1997). C++ Programming Language. Addison-Wesley. p. 475. ISBN 0201889544.