C++-Referenz/ Standardbibliothek/ Container-Klassen/ stack

Alte Seite

Die Arbeit am Buch »C++-Referenz« wurde vom Hauptautor eingestellt. Ein Lehrbuch zum Thema C++ ist unter »C++-Programmierung« zu finden. Eine sehr umfangreiche und gute Referenz gibt es unter cppreference.com.

Diese Seite beschreibt C++98, einen stark veralteten Standard. Aktuelle Referenz.

// Header: stack
template <typename T, typename Container = deque<T> >
class stack{
public:
    typedef typename Container::value_type value_type;
    typedef typename Container::size_type  size_type;
    typedef typename Container             container_type;

protected:
    Container c;

public:
    explicit stack(const Container& = Container());

    bool      empty()const { return c.empty(); }
    size_type size()const  { return c.size(); }

    value_type&       top()      { return c.back(); }
    value_type const& top()const { return c.back(); }

    void push(const value_type& x) { c.push_back(x); }
    void pop()                     { c.pop_back(); }
};

// Vergleiche
template <typename T, typename Container>
bool operator==(stack<T, Container> const&  x, stack<T, Container> const&  y);

template <typename T, typename Container>
bool operator< (stack<T, Container> const&  x, stack<T, Container> const&  y);

template <typename T, typename Container>
bool operator!=(stack<T, Container> const&  x, stack<T, Container> const&  y);

template <typename T, typename Container>
bool operator> (stack<T, Container> const&  x, stack<T, Container> const&  y);

template <typename T, typename Container>
bool operator>=(stack<T, Container> const&  x, stack<T, Container> const&  y);

template <typename T, typename Container>
bool operator<=(stack<T, Container> const&  x, stack<T, Container> const&  y);