Detailed Description
The Q3PtrStack class is a template class that provides a stack.
Q3ValueStack is an STL-compatible alternative to this class.
Define a template instance Q3PtrStack<X> to create a stack that operates on pointers to X, (X*).
A stack is a last in, first out (LIFO) structure. Items are added to the top of the stack with push() and retrieved from the top with pop(). Use top() to get a reference to the top element without changing the stack.
You can control the stack's deletion policy with setAutoDelete().
For compatibility with the Q3PtrCollection classes current() and remove() are provided; they both operate on the top().
See also Q3PtrList and Q3PtrQueue.
Member Function Documentation
Q3PtrStack::Q3PtrStack ()
Creates an empty stack.
Q3PtrStack::Q3PtrStack ( const Q3PtrStack<type> & s )
Creates a stack by making a shallow copy of another stack s.
Q3PtrStack::~Q3PtrStack ()
Destroys the stack. All items will be deleted if autoDelete() is TRUE.
bool Q3PtrStack::autoDelete () const
The same as Q3PtrCollection::autoDelete().
See also setAutoDelete().
void Q3PtrStack::clear () [virtual]
Removes all items from the stack, deleting them if autoDelete() is TRUE.
Reimplemented from Q3PtrCollection.
See also remove().
uint Q3PtrStack::count () const [virtual]
Returns the number of items in the stack.
Reimplemented from Q3PtrCollection.
See also isEmpty().
type * Q3PtrStack::current () const
Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty.
bool Q3PtrStack::isEmpty () const
Returns TRUE if the stack contains no elements; otherwise returns FALSE.
type * Q3PtrStack::pop ()
Removes the top item from the stack and returns it. The stack must not be empty.
void Q3PtrStack::push ( const type * d )
Adds an element d to the top of the stack. Last in, first out.
Reads a stack item, item, from the stream s and returns a reference to the stream.
The default implementation sets item to 0.
See also write().
bool Q3PtrStack::remove ()
Removes the top item from the stack and deletes it if autoDelete() is TRUE. Returns TRUE if there was an item to pop; otherwise returns FALSE.
See also clear().
void Q3PtrStack::setAutoDelete ( bool enable )
Defines whether this stack auto-deletes its contents. The same as Q3PtrCollection::setAutoDelete().
If enable is TRUE the stack auto-deletes its contents; if enable is FALSE the stack does not delete its contents.
See also autoDelete().
type * Q3PtrStack::top () const
Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty.
Writes a stack item, item, to the stream s and returns a reference to the stream.
The default implementation does nothing.
See also read().
Q3PtrStack::operator type * () const
Returns a pointer to the top item on the stack (most recently pushed). The stack is not changed. Returns 0 if the stack is empty.
Q3PtrStack<type> & Q3PtrStack::operator= ( const Q3PtrStack<type> & s )
Sets the contents of this stack by making a shallow copy of another stack s. Elements currently in this stack will be deleted if autoDelete() is TRUE.