---
name: "qptrstack"
section: "3qt"
platform: "linux"
package: "qt3-doc"
version: "3:3.3.8b-7"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/qptrstack"
---

# qptrstack(3qt)

Template class that provides a stack

## NAME

QPtrStack - Template class that provides a stack

## SYNOPSIS

`#include <qptrstack.h>`

### Public Members

**QPtrStack ()**\
 **QPtrStack ( const QPtrStack\<type\> & s )**\
 **~QPtrStack ()**\
 **QPtrStack\<type\> & operator= ( const QPtrStack\<type\> & s )**\
 **bool autoDelete () const**\
 **void setAutoDelete ( bool enable )**\
 **uint count () const**\
 **bool isEmpty () const**\
 **void push ( const type \* d )**\
 **type \* pop ()**\
 **bool remove ()**\
 **void clear ()**\
 **type \* top () const**\
 **operator type \* () const**\
 **type \* current () const**\

### Protected Members

**virtual QDataStream & read ( QDataStream & s, QPtrCollection::Item & item )**\
 **virtual QDataStream & write ( QDataStream & s, QPtrCollection::Item item ) const**\

## DESCRIPTION

The QPtrStack class is a template class that provides a stack.

QValueStack is an STL-compatible alternative to this class.

Define a template instance QPtrStack\<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 QPtrCollection classes current() and remove() are provided; they both operate on the top().

See also QPtrList, QPtrQueue, and Non-GUI Classes.

## MEMBER FUNCTION DOCUMENTATION

## QPtrStack::QPtrStack ()

Creates an empty stack.

## QPtrStack::QPtrStack ( const QPtrStack\<type\> & s )

Creates a stack by making a shallow copy of another stack *s*.

## QPtrStack::~QPtrStack ()

Destroys the stack. All items will be deleted if autoDelete() is TRUE.

## bool QPtrStack::autoDelete () const

The same as QPtrCollection::autoDelete().

See also setAutoDelete().

## void QPtrStack::clear ()

Removes all items from the stack, deleting them if autoDelete() is TRUE.

See also remove().

## uint QPtrStack::count () const

Returns the number of items in the stack.

See also isEmpty().

## type \* QPtrStack::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 QPtrStack::isEmpty () const

Returns TRUE if the stack contains no elements; otherwise returns FALSE.

## QPtrStack::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.

## QPtrStack\<type\> & QPtrStack::operator= ( const QPtrStack\<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.

## type \* QPtrStack::pop ()

Removes the top item from the stack and returns it. The stack must not be empty.

## void QPtrStack::push ( const type \* d )

Adds an element *d* to the top of the stack. Last in, first out.

## QDataStream & QPtrStack::read ( QDataStream & s, QPtrCollection::Item & item )` [virtual protected]`

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 QPtrStack::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 QPtrStack::setAutoDelete ( bool enable )

Defines whether this stack auto-deletes its contents. The same as QPtrCollection::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 \* QPtrStack::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.

## QDataStream & QPtrStack::write ( QDataStream & s, QPtrCollection::Item item ) const` [virtual protected]`

Writes a stack item, *item*, to the stream *s* and returns a reference to the stream.

The default implementation does nothing.

See also read().

## SEE ALSO

**http://doc.trolltech.com/qptrstack.html** **http://www.trolltech.com/faq/tech.html**

## COPYRIGHT

Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com.  See the license file included in the distribution for a complete license statement.

## AUTHOR

Generated automatically from the source code.

## BUGS

If you find a bug in Qt, please report it as described in **http://doc.trolltech.com/bughowto.html**. Good bug reports help us to help you. Thank you.

The definitive Qt documentation is provided in HTML format; it is located at $QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is provided as a convenience for those users who prefer man pages, although this format is not officially supported by Trolltech.

If you find errors in this manual page, please report them to **qt-bugs@trolltech.com**. Please include the name of the manual page (qptrstack.3qt) and the Qt version (3.3.8).
