このページでは

QTaggedIterator Class

template <typename Iterator, typename IteratorCategory> class QTaggedIterator

QTaggedIterator は、イテレータをラップし、標準のイテレータ特性を公開するテンプレートクラスです。詳細...

ヘッダー: #include <QTaggedIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
以下のように: Qt 6.0

パブリック関数

QTaggedIterator(Iterator &&it)
bool operator!=(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)
qsizetype operator-(const QTaggedIterator<Iterator, IteratorCategory> &j) const
QTaggedIterator<Iterator, IteratorCategory> operator-(qsizetype j) const
QTaggedIterator<Iterator, IteratorCategory> &operator--()
QTaggedIterator<Iterator, IteratorCategory> operator--(int x)
QTaggedIterator<Iterator, IteratorCategory> &operator-=(qsizetype j)
bool operator==(const QTaggedIterator<Iterator, IteratorCategory> &other) const
QTaggedIterator<Iterator, IteratorCategory> operator+(qsizetype j, const QTaggedIterator<Iterator, IteratorCategory> &k)

詳細な説明

QTaggedIterator<Iterator, IteratorCategory> は、Iterator が基になるイテレータ型(QIterator やQConstIterator など)であり、IteratorCategory が標準のイテレータカテゴリタグ(std::forward_iterator_tag や std::random_access_iterator_tag など)であるイテレータをラップします。

標準アルゴリズムでイテレータを使用するには、そのイテレータのトレイトが判明している必要があります。QMetaSequence::Iterable は多種多様なコンテナに対応しているため、イテレータクラス自体にトレイトを宣言することはできません。QTaggedIteratorを使用することで、イテレータまたはQConstIterator の具体的なインスタンスに対して、トレイトを明示的に宣言することができます。

メンバ関数のドキュメント

QTaggedIterator::QTaggedIterator(Iterator &&it)

イテレータまたはQConstIterator it からQTaggedIteratorを生成します。テンプレート引数として渡されたIteratorCategoryが、it の実行時機能と一致するかどうかを確認します。一致しない場合、it は拒否されます。

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

other がこのイテレータとは異なる項目を指している場合は、true を返します。それ以外の場合は、false を返します。

operator==()も参照してください 。

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

このイテレータからj の位置にある項目へのイテレータを返します。

operator-() およびoperator+=()も参照してください 。

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

++ 演算子(++it )は、イテレータをコンテナ内の次の要素へと進め、新しい現在の要素へのイテレータを返します。

QMetaSequence::Iterable::constEnd() に対してこの関数を呼び出すと、未定義の結果となります。

operator--()も参照してください 。

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

後置演算子 `++ ` (it++) は、イテレータをコンテナ内の次の要素へと進め、直前に現在位置にあった要素へのイテレータを返します。

これはオーバーロードされた関数です。

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

イテレータをj 個分進めます。

operator-=() およびoperator+()も参照してください 。

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

このイテレータとj との間の距離を返します。

operator+()、operator-=()、およびQIterable::canReverseIterate()も参照してください 。

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

このイテレータからj の位置分だけ後方に位置する項目へのイテレータを返します。

QVariant で指定されたコンテナが双方向の反復処理をサポートしていない場合、この関数を呼び出すと未定義の結果となります。

operator+()、operator-=()、およびQIterable::canReverseIterate()も参照してください 。

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

接頭辞-- 演算子(--it )は、直前の要素を現在の要素として設定し、新しい現在の要素へのイテレータを返します。

QMetaSequence::Iterable::constBegin() に対してこの関数を呼び出すと、未定義の結果が生じます。

QVariant 内のコンテナが双方向反復をサポートしていない場合、この関数を呼び出すと未定義の結果となります。

operator++() および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)

iteratork からj 位置先にある項目へのイテレータを返します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.