QTaggedIterator Class

template <typename Iterator, typename IteratorCategory> class QTaggedIterator

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

Header: #include <QTaggedIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: 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)

詳細説明

イテレータを標準的なアルゴリズムで使用するには、そのイテレータの特性を知っている必要があります。QSequentialIterable はさまざまな種類のコンテナで動作するため、イテレータ・クラス自体で特性を宣言することはできません。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) は、コンテナ内の次のアイテムにイテレータを進め、新しい現在のアイテムへのイテレータを返します。

QSequentialIterable::end() でこの関数を呼び出すと、未定義の結果になります。

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

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

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

postfix++ 演算子 (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) は、直前の項目を現在の項目にし、新しい現在の項目へのイテレータを返します。

この関数を QSequentialIterable::begin() で呼び出すと、未定義の結果になります。

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

operator++() およびQIterable::canReverseIterate()も参照

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

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

postfix-- 演算子(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 進んだ位置の項目へのイテレータを返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。