QSetIterator 类
template <typename T> class QSetIteratorQSetIterator 类提供了一个 Java 风格的常量迭代器,用于迭代 QSet。了解更多...
头文件 | #include <QSetIterator> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
公共函数
QSetIterator(const QSet<T> &set) | |
bool | findNext(const T &value) |
bool | hasNext() const |
const T & | next() |
const T & | peekNext() const |
void | toBack() |
void | toFront() |
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 将继续迭代原始集合,忽略修改的副本。
另请参阅QMutableSetIterator 和 QSet::const_iterator。
成员函数文档
QSetIterator::QSetIterator(const QSet<T> &set)
构建用于遍历 set 的迭代器。迭代器设置为在集合前面(在第一个项目之前)。
另请参阅operator=。
QSetIterator<T> &QSetIterator::operator=(const QSet<T> &container)
使迭代器在 集合 上操作。迭代器被设置在集合的前端(在第一个项目之前)。
void QSetIterator::toFront()
将迭代器移动到容器的前端(在第一个项目之前)。
bool QSetIterator::findNext(const T &value)
从当前迭代器位置开始向前搜索 value。如果找到 value,则返回 true
;否则返回 false
。
调用后,如果找到了 value,则迭代器位于匹配项之后;否则,迭代器位于容器末尾。
bool QSetIterator::hasNext() const
如果迭代器前至少有一个项目,即迭代器 不 在容器的末尾,则返回 true
;否则返回 false
。
另请参阅next()。
const T &QSetIterator::next()
返回下一个项目并使迭代器前进一步。
如果在容器的末尾调用此函数,则会导致未定义的结果。
const T &QSetIterator::peekNext() const
返回下一个项目而不移动迭代器。
如果在容器的末尾调用此函数,则会导致未定义的结果。
void QSetIterator::toBack()
将迭代器移动到容器的末尾(在最后一个项目之后)。
另请参阅toFront()。
© 2024 Qt公司有限公司。本文档中的文档贡献均为各自所有者的版权。本文档依据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款和条件进行许可。Qt及其相关标志是芬兰的Qt公司及其在世界上其他国家和地区的 商标。所有其他商标均为各自所有者的财产。