/**************************************************************************** | |
** | |
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). | |
** All rights reserved. | |
** Contact: Nokia Corporation (qt-info@nokia.com) | |
** | |
** This file is part of the documentation of the Qt Toolkit. | |
** | |
** $QT_BEGIN_LICENSE:FDL$ | |
** GNU Free Documentation License | |
** Alternatively, this file may be used under the terms of the GNU Free | |
** Documentation License version 1.3 as published by the Free Software | |
** Foundation and appearing in the file included in the packaging of | |
** this file. | |
** | |
** Other Usage | |
** Alternatively, this file may be used in accordance with the terms | |
** and conditions contained in a signed written agreement between you | |
** and Nokia. | |
** | |
** | |
** | |
** | |
** $QT_END_LICENSE$ | |
** | |
****************************************************************************/ | |
/*! | |
\class Q3ValueStack | |
\brief The Q3ValueStack class is a value-based template class that provides a stack. | |
\compat | |
Define a template instance Q3ValueStack\<X\> to create a stack of | |
values that all have the class X. | |
Note that Q3ValueStack does not store pointers to the members of | |
the stack; it holds a copy of every member. That is why these | |
kinds of classes are called "value based"; Q3PtrStack, Q3PtrList, | |
Q3Dict, etc., are "pointer based". | |
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(). The top() function provides access to the topmost item | |
without removing it. | |
Example: | |
\snippet doc/src/snippets/code/doc_src_q3valuestack.cpp 0 | |
Q3ValueStack is a specialized Q3ValueList provided for convenience. | |
All of Q3ValueList's functionality also applies to Q3PtrStack, for | |
example the facility to iterate over all elements using | |
Q3ValueStack<T>::Iterator. See Q3ValueListIterator for further | |
details. | |
Some classes cannot be used within a Q3ValueStack, for example | |
everything derived from QObject and thus all classes that | |
implement widgets. Only values can be used in a Q3ValueStack. To | |
qualify as a value, the class must provide | |
\list | |
\i a copy constructor; | |
\i an assignment operator; | |
\i a default constructor, i.e. a constructor that does not take any arguments. | |
\endlist | |
Note that C++ defaults to field-by-field assignment operators and | |
copy constructors if no explicit version is supplied. In many | |
cases this is sufficient. | |
*/ | |
/*! | |
\fn Q3ValueStack::Q3ValueStack() | |
Constructs an empty stack. | |
*/ | |
/*! | |
\fn Q3ValueStack::~Q3ValueStack() | |
Destroys the stack. References to the values in the stack and all | |
iterators of this stack become invalidated. Because Q3ValueStack is | |
highly tuned for performance, you won't see warnings if you use | |
invalid iterators because it is impossible for an iterator to | |
check whether or not it is valid. | |
*/ | |
/*! | |
\fn void Q3ValueStack::push( const T& d ) | |
Adds element, \a d, to the top of the stack. Last in, first out. | |
This function is equivalent to append(). | |
\sa pop(), top() | |
*/ | |
/*! | |
\fn T& Q3ValueStack::top() | |
Returns a reference to the top item of the stack or the item | |
referenced by end() if no such item exists. Note that you must not | |
change the value the end() iterator points to. | |
This function is equivalent to last(). | |
\sa pop(), push(), Q3ValueList::fromLast() | |
*/ | |
/*! | |
\fn const T& Q3ValueStack::top() const | |
\overload | |
Returns a reference to the top item of the stack or the item | |
referenced by end() if no such item exists. | |
This function is equivalent to last(). | |
\sa pop(), push(), Q3ValueList::fromLast() | |
*/ | |
/*! | |
\fn T Q3ValueStack::pop() | |
Removes the top item from the stack and returns it. | |
\sa top() push() | |
*/ | |