QListIterator 类
template <typename T> class QListIteratorQListIterator 类提供了一个用于 QList 和 QQueue 的 Java 样式常量迭代器。 更多...
头文件 | #include <QListIterator> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
公共函数
QListIterator(const QList<T> &list) | |
bool | findNext(const T &value) |
bool | findPrevious(const T &value) |
bool | hasNext() const |
bool | hasPrevious() const |
const T & | next() |
const T & | peekNext() const |
const T & | peekPrevious() const |
const T & | previous() |
void | toBack() |
void | toFront() |
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活动时修改了列表,列表迭代器将继续遍历原始列表,忽略修改的副本。
另请参阅QMutableListIterator 和 QList::const_iterator。
成员函数文档
QListIterator::QListIterator(const QList<T> &list)
构建一个用于遍历 list 的迭代器。迭代器被设置在列表的前端(在第一个项目之前)。
另请参阅operator=。
QListIterator<T> &QListIterator::operator=(const QList<T> &container)
使迭代器在 list 上操作。迭代器被设置在列表的前端(在第一个项目之前)。
void QListIterator::toFront()
将迭代器移动到容器的前端(在第一个项目之前)。
void QListIterator::toBack()
将迭代器移动到容器的后端(在最后一个项目之后)。
bool QListIterator::hasNext() const
如果迭代器前方至少有一个项目,则返回 true
,即迭代器不在容器的后端;否则返回 false
。
另请参阅hasPrevious 和 next。
bool QListIterator::hasPrevious() const
如果迭代器后方至少有一个项目,则返回 true
,即迭代器不在容器的前端;否则返回 false
。
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()
返回下一个项目并将迭代器向前移动一个位置。
在容器的末尾的迭代器上调用此函数将导致未定义的结果。
另请参阅hasNext,peekNext和previous。
const T &QListIterator::peekNext() const
返回下一个项目而不移动迭代器。
在容器的末尾的迭代器上调用此函数将导致未定义的结果。
另请参阅hasNext,next和peekPrevious。
const T &QListIterator::peekPrevious() const
返回前一个项目而不移动迭代器。
在容器的开头调用此函数将导致未定义的结果。
另请参阅hasPrevious,previous和peekNext。
const T &QListIterator::previous()
返回前一个项目并将迭代器向后移动一个位置。
在容器的开头调用此函数将导致未定义的结果。
另请参阅hasPrevious,peekPrevious和next。
© 2024 Qt公司有限公司。本文档中包含的贡献的版权属于各自的拥有者。本提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可。Qt和相应的标志是芬兰的Qt公司及其在全球的子公司和分支机构的商标。所有其他商标均为其各自所有者的财产。