QValueListIterator - Iterator for
#include <qvaluelist.h>
Public Members
QValueListIterator ()
QValueListIterator ( NodePtr p )
QValueListIterator ( const QValueListIterator<T> & it )
bool operator== ( const QValueListIterator<T> & it ) const
bool operator!= ( const QValueListIterator<T> & it ) const
const T& operator* () const
T& operator* ()
QValueListIterator<T>& operator++ ()
QValueListIterator<T> operator++ ( int )
QValueListIterator<T>& operator-- ()
QValueListIterator<T> operator-- ( int )
DESCRIPTION
The QValueListIterator class provides an iterator for
QValueList.
You can not create an iterator by yourself. Instead you
have to ask a list to give you one. An iterator has only
the size of a pointer. On 32 bit machines that means 4
bytes otherwise 8 bytes. That makes them very fast. In
fact they resemble the semantics of pointers as good as
possible and they are almost as fast as usual pointers.
Example:
#include <qvaluelist.h>
#include <qstring.h>
#include <stdio.h>
class Employee
{
public:
Employee(): s(0) {}
Employee( const QString& name, int salary )
: n(name), s(salary)
{}
QString name() const { return n; }
int salary() const { return s; }
void setSalary( int salary ) { s = salary; }
private:
QString n;
int s;
};
void main()
{
typedef QValueList<Employee> EmployeeList;
EmployeeList list; // list of Employee
list.append( Employee("Bill", 50000) );
list.append( Employee("Ron", 60000) );
Employee joe( "Joe", 50000 );
list.append( joe );
joe.setSalary( 4000 );
EmployeeList::Iterator it;
for( it = list.begin(); it != list.end(); ++it )
printf( "%s earns %d\n", (*it).name().latin1(), (*it).salary() );
}
Program output:
Bill earns 50000
Steve earns 80000
Ron earns 60000
Joe earns 50000
In contrast to QList there are no built in functions in
QValueList to traverse the list. The only way to do this
is to use iterators. QValueList is highly optimized for
performance and memory usage. On the other hand that means
that you have to be a bit more careful by what you are
doing. QValueList does not know about all its iterators
and the iterators dont even know to which list they
belong. That makes things fast and slim but a bit
dangerous because it is up to you to make sure that
iterators you are using are still valid. QListIterator
will be able to give warnings while QValueListIterator may
end up in an undefined state.
For every Iterator there is a ConstIterator. When
accessing a QValueList in a const environment or if the
reference or pointer to the list is itself const, then you
have to use the ConstIterator. Its semantics are the same,
but it returns only const references to the item it points
to.
See also QValueList and QValueListConstIterator.
MEMBER FUNCTION DOCUMENTATION
QValueListIterator::QValueListIterator ()
Creates un uninitialized iterator.
QValueListIterator::QValueListIterator ( NodePtr p )
Internal function.
QValueListIterator::QValueListIterator ( const
QValueListIterator<T> & it )
Constructs a copy of the iterator it.
bool QValueListIterator::operator!= ( const QValueListIterator
& it ) const
Compares both iterators and returns TRUE if they point to
different items.
Asterix operator. Returns a reference to the current
iterator item.
const T& QValueListIterator::operator* () const
Asterix operator. Returns a reference to the current
iterator item.
QValueListIterator QValueListIterator::operator++ ( int )
Postfix ++ makes the succeeding item current and returns
an iterator pointing to the new current item. The iterator
can not check wether it reached the end of the list.
Incrementing the iterator as returned by end() causes
undefined results.
QValueListIterator& QValueListIterator::operator++ ()
Prefix ++ makes the succeeding item current and returns an
iterator pointing to the new current item. The iterator
can not check wether it reached the end of the list.
Incrementing the iterator as returned by end() causes
undefined results.
QValueListIterator QValueListIterator::operator-- ( int )
Postfix -- makes the previous item current and returns an
iterator pointing to the new current item. The iterator
can not check wether it reached the beginning of the list.
Decrementing the iterator as returned by begin() causes
undefined results.
QValueListIterator& QValueListIterator::operator-- ()
Prefix -- makes the previous item current and returns an
iterator pointing to the new current item. The iterator
can not check wether it reached the beginning of the list.
Decrementing the iterator as returned by begin() causes
undefined results.
bool QValueListIterator::operator== ( const QValueListIterator
& it ) const
Compares both iterators and returns TRUE if they point to
the same item.
SEE ALSO
http://doc.trolltech.com/qvaluelistiterator.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2001 Trolltech AS,
http://www.trolltech.com. See the license file included
in the distribution for a complete license statement.
AUTHOR
Generated automatically from the source code.
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports
make our job much simpler. Thank you.
In case of content or formattting problems with this
manual page, please report them to qt-bugs@trolltech.com.
Please include the name of the manual page
(qvaluelistiterator.3qt) and the Qt version (2.3.1).
Man(1) output converted with
man2html