QPtrListIterator类

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

QPtrListIterator类参考

QPtrListIterator类提供了QPtrList集合的迭代器。 详情请见……

#include <qptrlist.h>

QObjectListItQStrListIterator继承。

所有成员函数的列表。

公有成员


详细描述

QPtrListIterator类提供了QPtrList集合的迭代器。

定义一个模板实例QPtrListIterator<X>就创建一个在QPtrList<X>(X*的列表)的一个列表迭代器。

下面的实例和QPtrList类文档中的实例相似,但是它使用了QPtrListIterator。类Employee是在那里定义的。

    QPtrList<Employee> list;

    list.append( new Employee("John", "Doe", 50000) );
    list.append( new Employee("Jane", "Williams", 80000) );
    list.append( new Employee("Tom", "Jones", 60000) );

    QPtrListIterator<Employee> it( list );
    Employee *employee;
    while ( (employee = it.current()) != 0 ) {
        ++it;
        cout << employee->surname().latin1() << ", " <<
                employee->forename().latin1() << " earns " <<
                employee->salary() << endl;
    }
  

输出是

    Doe, John earns 50000
    Williams, Jane earns 80000
    Jones, Tom earns 60000
  

使用列表迭代器识别使用QPtrList的成员函数first()、next()、current()等等更加强壮的遍历方法,并且许多迭代器可以同时分别地遍历同一个列表。

一个迭代器中有一个它自己的当前列表项并且能够得到下一个和上一个列表项。它不能以任何方式修改这个列表。

当一个项从列表中被移除,所有指向这个项地迭代器都会被更新为指向QPtrList::current()而避免摇摆引用。

也可以参考QPtrList集合类非GUI 类


成员函数文档

QPtrListIterator::QPtrListIterator ( const QPtrList<type> & list )

list构造一个迭代器。当前迭代器项被设置为指向list中的第一项。

QPtrListIterator::~QPtrListIterator ()

销毁这个迭代器。

bool QPtrListIterator::atFirst () const

如果当前迭代器项是列表的第一个项,返回真,否则返回假。

也可以参考toFirst()和atLast()。

bool QPtrListIterator::atLast () const

如果当前迭代器项是列表的最后一个项,返回真,否则返回假。

也可以参考toLast()和atFirst()。

uint QPtrListIterator::count () const

返回这个迭代器操作的列表的项的数量。

也可以参考isEmpty()。

实例:customlayout/card.cpp

type * QPtrListIterator::current () const

返回指向当前迭代器项的指针。如果迭代器被放置到列表的第一项之前或者最后一项之后,返回的是空指针。

实例:canvas/canvas.cppcustomlayout/card.cppcustomlayout/flow.cpp

bool QPtrListIterator::isEmpty () const

如果列表是空的,返回真,否则返回假。

也可以参考count()。

QPtrListIterator::operator type * () const

抛出操作符。返回指向当前迭代器项的指针。和current()一样。

type * QPtrListIterator::operator() ()

让当前项后的一项变为当前向并且返回原来的当前项。

如果当前迭代器项是列表中的最后一项或者如果它为空,返回空。

type * QPtrListIterator::operator* ()

星号操作符。返回指向当前迭代器项的指针。和current()一样。

type * QPtrListIterator::operator++ ()

前置++让当前项后的一项变为当前向并且返回原来的当前项。

如果当前迭代器项是列表中的最后一项或者如果它为空,返回空。

type * QPtrListIterator::operator+= ( uint jump )

设置当前项跳到当前项之后jump个位置的项并且返回指向那个项的指针。

如果那个项已经超过最后一个项或者如果列表为空,它设置当前项为空并且返回空。

type * QPtrListIterator::operator-- ()

前置-让当前向的前一项变为当前向并且返回原来的当前项。

如果当前迭代器项是列表中的最后一项或者如果它为空,返回空。

type * QPtrListIterator::operator-= ( uint jump )

设置当前项跳到当前项之前jump个位置的项并且返回指向那个项的指针。

如果那个项已经超过第一个项或者如果列表为空,它设置当前项为空并且返回空。

QPtrListIterator<type> & QPtrListIterator::operator= ( const QPtrListIterator<type> & it )

赋值。做迭代器it的复制并且返回这个迭代器的引用。

type * QPtrListIterator::toFirst ()

设置当前迭代器指向列表中的第一个项并且返回指向这个项的指针。如果列表为空,设置当前项为空并且返回空。

也可以参考toLast()和atFirst()。

type * QPtrListIterator::toLast ()

设置当前迭代器指向列表中的最后一个项并且返回指向这个项的指针。如果列表为空,设置当前项为空并且返回空。

也可以参考toFirst()和atLast()。


这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版