QListIterator 类

template <typename T> class QListIterator

QListIterator 类提供了一个用于 QListQQueue 的 Java 样式常量迭代器。 更多...

头文件 #include <QListIterator>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

QListIterator(const QList<T> &list)
boolfindNext(const T &value)
boolfindPrevious(const T &value)
boolhasNext() const
boolhasPrevious() const
const T &next()
const T &peekNext() const
const T &peekPrevious() const
const T &previous()
voidtoBack()
voidtoFront()
QListIterator<T> &operator=(const QList<T> &container)

详细描述

QList 同时拥有 Java 样式迭代器STL 样式迭代器。STL 样式迭代器更高效,应优先使用。

使用索引位置作为迭代器的另一种选择。大多数 QList 成员函数都将索引作为第一个参数,这样就可以在不用迭代器的情况下访问、修改和删除项目。

QListIterator<T> 允许您迭代 QList<T>、QQueue<T> 或 QStack<T>。如果要边迭代边修改列表,请使用 QMutableListIterator<T>。

QListIterator 构造函数接收一个 QList 作为参数。构造后,迭代器位于列表的非常开始处(在第一个项目之前)。以下是按顺序遍历所有元素的方法

QList<float> list;
...
QListIterator<float> i(list);
while (i.hasNext())
    float f = i.next();

next() 函数返回列表中的下一个项目,并前进迭代器。与 STL 样式迭代器不同,Java 样式迭代器在项目之间指向,而不是直接指向项目。对 next() 的第一次调用将迭代器前进到第一个和第二个项目之间的位置,并返回第一个项目;第二次调用 next() 将迭代器前进到第二个和第三个项目之间的位置,并返回第二个项目;依此类推。

以下是按反向顺序遍历元素的方法

QListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
    float f = i.previous();

如果您想要查找特定值的所有出现,请在循环中使用findNext() 或 findPrevious()。

可以在同一列表上使用多个迭代器。如果在一个QListIterator活动时修改了列表,列表迭代器将继续遍历原始列表,忽略修改的副本。

另请参阅QMutableListIteratorQList::const_iterator

成员函数文档

QListIterator::QListIterator(const QList<T> &list)

构建一个用于遍历 list 的迭代器。迭代器被设置在列表的前端(在第一个项目之前)。

另请参阅operator=

QListIterator<T> &QListIterator::operator=(const QList<T> &container)

使迭代器在 list 上操作。迭代器被设置在列表的前端(在第一个项目之前)。

另请参阅toFront() 和 toBack

void QListIterator::toFront()

将迭代器移动到容器的前端(在第一个项目之前)。

另请参阅toBacknext

void QListIterator::toBack()

将迭代器移动到容器的后端(在最后一个项目之后)。

另请参阅toFrontprevious

bool QListIterator::hasNext() const

如果迭代器前方至少有一个项目,则返回 true,即迭代器不在容器的后端;否则返回 false

另请参阅hasPreviousnext

bool QListIterator::hasPrevious() const

如果迭代器后方至少有一个项目,则返回 true,即迭代器不在容器的前端;否则返回 false

另请参阅hasNextprevious

bool QListIterator::findNext(const T &value)

从当前迭代器位置开始向前搜索 value。如果找到 value,则返回 true;否则返回 false

调用后,如果找到 value,迭代器将位于匹配项之后;否则,迭代器将位于容器的后端。

另请参阅findPrevious

bool QListIterator::findPrevious(const T &value)

从当前迭代器位置向后查找value。如果找到了value,则返回true;否则返回false。

调用后,如果找到了value,迭代器将定位在匹配项之前;否则,迭代器将定位在容器的开头。

另请参阅findNext

const T &QListIterator::next()

返回下一个项目并将迭代器向前移动一个位置。

在容器的末尾的迭代器上调用此函数将导致未定义的结果。

另请参阅hasNextpeekNextprevious

const T &QListIterator::peekNext() const

返回下一个项目而不移动迭代器。

在容器的末尾的迭代器上调用此函数将导致未定义的结果。

另请参阅hasNextnextpeekPrevious

const T &QListIterator::peekPrevious() const

返回前一个项目而不移动迭代器。

在容器的开头调用此函数将导致未定义的结果。

另请参阅hasPreviouspreviouspeekNext

const T &QListIterator::previous()

返回前一个项目并将迭代器向后移动一个位置。

在容器的开头调用此函数将导致未定义的结果。

另请参阅hasPreviouspeekPreviousnext

© 2024 Qt公司有限公司。本文档中包含的贡献的版权属于各自的拥有者。本提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可。Qt和相应的标志是芬兰的Qt公司及其在全球的子公司和分支机构的商标。所有其他商标均为其各自所有者的财产。