返回介绍

QPtrListIterator类

发布于 2019-10-04 15:02:06 字数 4244 浏览 927 评论 0 收藏 0

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

#include <qptrlist.h>

被QObjectListIt和QStrListIterator继承。

所有成员函数的列表。

公有成员

  • QPtrListIterator ( constQPtrList<type>&list )
  • ~QPtrListIterator ()
  • uint count () const
  • bool isEmpty () const
  • bool atFirst () const
  • bool atLast () const
  • type * toFirst ()
  • type * toLast ()
  • operator type * () const
  • type * operator* ()
  • type * current () const
  • type * operator() ()
  • type * operator++ ()
  • type * operator+= ( uintjump )
  • type * operator-- ()
  • type * operator-= ( uintjump )
  • QPtrListIterator<type> & operator= ( constQPtrListIterator<type>&it )

详细描述

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 ( constQPtrList<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.cpp、customlayout/card.cpp和customlayout/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+= ( uintjump )

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

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

type * QPtrListIterator::operator-- ()

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

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

type * QPtrListIterator::operator-= ( uintjump )

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

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

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

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

type * QPtrListIterator::toFirst ()

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

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

type * QPtrListIterator::toLast ()

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文