template class CCL::Stack

#include <stack.h>

template <class T>
class Stack: protected Core::Deque
{
public:
    // methods

    void push (const T& data);
    T pop ();
    const T& peek () const;
};

Inherited Members

public:
    // methods

    void append (const T& data);
    void prepend (const T& data);
    bool insertBefore (const T& before, const T& data);
    bool insertBefore (ListIterator <T>& iter, const T& data);
    bool insertAfter (ListIterator <T>& iter, const T& data);
    bool insertAt (int idx, const T& data);
    bool addSorted (const T& data);
    bool replace (ListIterator <T>& iter, const T& newData);
    void swapContent (LinkedList <T>& other);
    bool remove (const T& data);
    bool removeAt (int idx);
    bool remove (ListIterator <T>& iter);

    template  <class Predicate>
    int removeIf (const Predicate& recognize);

    int removeIf (ContainerPredicateFunction recognize);
    void removeAll ();
    T removeFirst ();
    T removeLast ();
    bool isEmpty () const;
    bool isMultiple () const;
    int count () const;
    void sort ();

    template  <class Predicate>
    void sort (Predicate greater);

    const T& at (int idx) const;
    bool contains (const T& data) const;
    const T& lookup (const T& data) const;
    const T& getFirst () const;
    const T& getLast () const;

    template  <class Predicate>
    const T& findIf (const Predicate& recognize) const;

    const T& findIf (ContainerPredicateFunction recognize) const;
    RangeIterator <LinkedList <T>, ListIterator <T>, T&> begin () const;
    RangeIterator <LinkedList <T>, ListIterator <T>, T&> end () const;
    void addFront (const T& data);
    void addBack (const T& data);
    T popFront ();
    T popBack ();
    const T& peekFront () const;
    const T& peekBack () const;