QSetIterator 类

template <typename T> class QSetIterator

QSetIterator 类提供了一个 Java 风格的常量迭代器,用于迭代 QSet。了解更多...

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

公共函数

QSetIterator(const QSet<T> &set)
boolfindNext(const T &value)
boolhasNext() const
const T &next()
const T &peekNext() const
voidtoBack()
voidtoFront()
QSetIterator<T> &operator=(const QSet<T> &container)

详细说明

QSet 既提供了 Java 风格迭代器 也提供了 STL 风格迭代器。STL 风格迭代器更有效率,应该优先使用。

QSetIterator<T> 允许您迭代 QSet<T>。如果您在迭代过程中要修改集合,请使用 QMutableSetIterator<T>。

构造函数接受一个 QSet 作为参数。在构造之后,迭代器位于集合的开始位置(在第一个元素之前)。以下是按顺序迭代所有元素的示例

QSet<QString> set;
...
QSetIterator<QString> i(set);
while (i.hasNext())
    float f = i.next();

next() 函数返回集合中的下一个项目并前进迭代器。与 STL 风格迭代器不同,Java 风格的迭代器在项目之间指向 之间,而不是直接指向 项目。第一次调用 nextnext() 的迭代器将前进到第二个和第三个元素之间,并返回第二个元素;依此类推。

如果您想找到特定值的所有发生次数,请在循环中使用 findNext()。

可以同时对同一集合使用多个迭代器。如果在 QSetIterator 激活时修改集合,QSetIterator 将继续迭代原始集合,忽略修改的副本。

另请参阅QMutableSetIteratorQSet::const_iterator

成员函数文档

QSetIterator::QSetIterator(const QSet<T> &set)

构建用于遍历 set 的迭代器。迭代器设置为在集合前面(在第一个项目之前)。

另请参阅operator=

QSetIterator<T> &QSetIterator::operator=(const QSet<T> &container)

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

另请参阅toFront() 和 toBack()。

void QSetIterator::toFront()

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

另请参阅toBack() 和 next()。

bool QSetIterator::findNext(const T &value)

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

调用后,如果找到了 value,则迭代器位于匹配项之后;否则,迭代器位于容器末尾。

bool QSetIterator::hasNext() const

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

另请参阅next()。

const T &QSetIterator::next()

返回下一个项目并使迭代器前进一步。

如果在容器的末尾调用此函数,则会导致未定义的结果。

另请参阅hasNext() 和 peekNext()。

const T &QSetIterator::peekNext() const

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

如果在容器的末尾调用此函数,则会导致未定义的结果。

另请参阅hasNext() 和 next()。

void QSetIterator::toBack()

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

另请参阅toFront()。

© 2024 Qt公司有限公司。本文档中的文档贡献均为各自所有者的版权。本文档依据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款和条件进行许可。Qt及其相关标志是芬兰的Qt公司及其在世界上其他国家和地区的 商标。所有其他商标均为各自所有者的财产。