QValueListIterator类

Qt 3.0.5

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

QValueListIterator类参考

QValueListIterator类提供了QValueList的迭代器。 详情请见……

#include <qvaluelist.h>

所有成员函数的列表。

公有成员s


详细描述

QValueListIterator类提供了QValueList的迭代器。

迭代器就是一个可以访问容器类项的类——就是数组中索引的广义化。一个指针“const char *”和一个索引“int[]”都是迭代器,并且这个通用的思想就是为任何数据结构都提供这样的功能。

QValueListIterator类是QValueList实例的迭代器。你可以通过使用QValueList中定义的iterator来创建合适的迭代器类型。

在QValueList中唯一可以用来访问项的方法就是使用迭代器。

实例(全部代码可以参考QValueList):

    EmployeeList::iterator it;
    for ( it = list.begin(); it != list.end(); ++it )
        cout << (*it).surname().latin1() << ", " <<
                (*it).forename().latin1() << " earns " <<
                (*it).salary() << endl;

    // 输出:
    // Doe, John earns 50000
    // Williams, Jane earns 80000
    // Hawthorne, Mary earns 90000
    // Jones, Tom earns 60000
    

QValueList对性能和内存使用已经高度优化了。这也就是说,你必须谨慎使用,QValueList不知道所有关于它的迭代器并且迭代器也不知道它们属于哪一个列表。这使得事情变得很快,但是如果你不注意,你就会得到壮观的bug。在引用迭代器或者使用它们作为STL或者QTL中的通用算法的参数时,请确认它们是有效的。

使用未定义的迭代器是未定义的(你的程序也许将会崩溃)。很多Qt函数返回常量值列表,要遍历它们,你应该复制之后再遍历它们的副本。

对于每一个Iterator都有一个ConstIterator。当在一个常量环境中访问QValueList或者如果列表的引用或指针本身是一个常量,那么你就必须使用ConstIterator。它的语义和Iterator一样,但是它返回的是常量引用。

也可以参考QValueListQValueListConstIteratorQt模板库类非GUI类


成员类型文档

QValueListIterator::pointer

值类型的指针。

QValueListIterator::reference

值类型的引用。

QValueListIterator::value_type

值的类型,T。

成员函数文档

QValueListIterator::QValueListIterator ()

创建未定义的迭代器。

QValueListIterator::QValueListIterator ( const QValueListIterator<T> & it )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

构造一个迭代器it的复制。

bool QValueListIterator::operator!= ( const QValueListIterator<T> & it ) const

比较这个迭代器和it并且如果它们指向不同的项,返回真,否则返回假。

T & QValueListIterator::operator* ()

星号操作符。返回当前迭代器项的引用。

const T & QValueListIterator::operator* () const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

星号操作符。返回当前迭代器项的引用。

QValueListIterator<T> & QValueListIterator::operator++ ()

前置++让当前项后的一项变为当前向并且返回原来的当前项。迭代器不能检测它是否到达了列表末尾。增加这个迭代器就会返回end()导致未定义的结果。

QValueListIterator<T> QValueListIterator::operator++ ( int )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

后置++让当前项后的一项变为当前向并且返回原来的当前项。迭代器不能检测它是否到达了列表末尾。增加这个迭代器就会返回end()导致未定义的结果。

QValueListIterator<T> & QValueListIterator::operator-- ()

前置--让当前项前的一项变为当前向并且返回原来的当前项。迭代器不能检测它是否到达了列表开始。增加这个迭代器就会返回begin()导致未定义的结果。

QValueListIterator<T> QValueListIterator::operator-- ( int )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

后置--让当前项前的一项变为当前向并且返回原来的当前项。迭代器不能检测它是否到达了列表开始。增加这个迭代器就会返回begin()导致未定义的结果。

bool QValueListIterator::operator== ( const QValueListIterator<T> & it ) const

比较这个迭代器和it并且如果它们指向相同的项,返回真,否则返回假。


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


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