QTaggedIterator 类

template <typename Iterator, typename IteratorCategory> class QTaggedIterator

QTaggedIterator 是一个模板类,它封装了一个迭代器并公开了标准迭代器特性。 更多...

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

公共函数

QTaggedIterator(Iterator &&it)
booloperator!=(const QTaggedIterator<Iterator, IteratorCategory> &other) const
QTaggedIterator<Iterator, IteratorCategory>operator+(qsizetype j) const
QTaggedIterator<Iterator, IteratorCategory> &operator++()
QTaggedIterator<Iterator, IteratorCategory>operator++(int x)
QTaggedIterator<Iterator, IteratorCategory> &operator+=(qsizetype j)
QTaggedIterator<Iterator, IteratorCategory>operator-(qsizetype j) const
qsizetypeoperator-(const QTaggedIterator<Iterator, IteratorCategory> &j) const
QTaggedIterator<Iterator, IteratorCategory> &operator--()
QTaggedIterator<Iterator, IteratorCategory>operator--(int x)
QTaggedIterator<Iterator, IteratorCategory> &operator-=(qsizetype j)
booloperator==(const QTaggedIterator<Iterator, IteratorCategory> &other) const
QTaggedIterator<Iterator, IteratorCategory>operator+(qsizetype j, const QTaggedIterator<Iterator, IteratorCategory> &k)

详细描述

为了使用任何标准算法的迭代器,其迭代器特性需要已知。由于 QSequentialIterable 可以与许多不同类型的容器一起工作,我们无法在迭代器类本身中声明特性。QTaggedIterator 为迭代器或 QConstIterator 的具体实例声明特性提供了一个方法。

成员函数文档

QTaggedIterator::QTaggedIterator(Iterator &&it)

从一个迭代器或 QConstIterator it 构造一个 QTaggedIterator。检查模板参数中传递的 IteratorCategory 是否与 it 的运行时功能匹配;如果不匹配,则拒绝 it

bool QTaggedIterator::operator!=(const QTaggedIterator<Iterator, IteratorCategory> &other) const

如果其他迭代器指向不同于当前迭代器的项目,则返回 true;否则返回 false

参见操作符==()。

QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator+(qsizetype j) const

返回指向从当前迭代器出发的前进j位置处的项目的迭代器。

参见操作符-() 和 操作符+=()。

QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator++()

前缀 ++ 操作符 (++it) 将迭代器推进到容器中的下一个项目,并返回对新当前项的迭代器。

QSequentialIterable::end() 上调用此函数会导致未定义的结果。

参见操作符--()。

QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator++(int x)

这是一个重载函数。

后缀 ++ 操作符 (it++) 将迭代器推进到容器中的下一个项目,并返回对先前当前项的迭代器。

QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator+=(qsizetype j)

将迭代器向前推进j个项目。

参见操作符-=() 和 操作符+()。

QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator-(qsizetype j) const

返回指向相对当前迭代器后退j位置处的项目的迭代器。

如果容器中不包含在 QVariant 中的双向迭代支持,调用此函数会导致未定义的结果。

参见操作符+(),操作符-=() 和 QIterable::canReverseIterate()。

qsizetype QTaggedIterator::operator-(const QTaggedIterator<Iterator, IteratorCategory> &j) const

返回此迭代器与 j 之间的距离。

参见操作符+(),操作符-=() 和 QIterable::canReverseIterate()。

QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator--()

前缀 -- 操作符 (--it) 使得前一个项目成为当前项目,并返回对新当前项目的迭代器。

QSequentialIterable::begin() 上调用此函数会导致未定义的结果。

如果容器中不包含在 QVariant 中的双向迭代支持,调用此函数会导致未定义的结果。

参见操作符++() 和 QIterable::canReverseIterate()。

QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator--(int x)

这是一个重载函数。

后缀操作符 --it--)将前面的项目设置为当前元素,并返回一个指向先前当前元素的迭代器。

如果容器中不包含在 QVariant 中的双向迭代支持,调用此函数会导致未定义的结果。

另请参阅 QIterable::canReverseIterate

QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator-=(qsizetype j)

将迭代器向后移动 j 个元素。

如果容器中不包含在 QVariant 中的双向迭代支持,调用此函数会导致未定义的结果。

另请参阅 operator+=)、operator-)和 QIterable::canReverseIterate

bool QTaggedIterator::operator==(const QTaggedIterator<Iterator, IteratorCategory> &other) const

如果 other 指向与该迭代器相同的元素,则返回 true;否则返回 false

另请参阅 operator!=

相关非成员

QTaggedIterator<Iterator, IteratorCategory> operator+(qsizetype j, const QTaggedIterator<Iterator, IteratorCategory> &k)

返回一个指向从迭代器 k 开始向前移动 j 个位置的元素的迭代器。

© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会的GNU自由文档许可证版本1.3的条款许可的。Qt以及相应的标志是芬兰和/或其他国家The Qt Company Ltd的商标。所有其他商标均为其各自所有者的财产。