Stack (C++)

A stack is a standard C++ container adapter, designed to be used in a LIFO context,[1] and is implemented with 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 a 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 Get a reference to the top element of the stack, does not pop it
Modifiers push Push an element onto the stack
pop Pop off the top element of the stack
Size size Get number of elements

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.
This article is issued from Wikipedia - version of the Friday, August 21, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.