このページでは

QSetIterator Class

template <typename T> class QSetIterator

QSetIterator クラスは、QSet に対して Java スタイルの const イテレータを提供します。詳細...

ヘッダー: #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> &set)

詳細な説明

QSet には、Java スタイルのイテレータと STL スタイルのイテレータの両方が用意されています。STL スタイルのイテレータの方が効率が高いため、そちらを優先して使用してください。テンプレートパラメータT は、セットに格納される項目の型を指定します。

QSetIterator<T> を使用すると、QSet<T> を反復処理することができます。反復処理中にセットを変更したい場合は、代わりにQMutableSetIterator<T> を使用してください。

コンストラクタは引数としてQSet を受け取ります。生成後、イテレータはセットの先頭(最初の要素の前)に位置します。すべての要素を順次反復処理する方法は次のとおりです:

QSet<QString> set;
//...
QSetIterator<QString> i(set);
while (i.hasNext())
    QString f = i.next();

next() 関数は、セット内の次の要素を返し、イテレータを進めます。STL スタイルのイテレータとは異なり、Java スタイルのイテレータは要素を直接指すのではなく、要素間の位置を指します。next() の最初の呼び出しは、イテレータを 1 番目の要素と 2 番目の要素の間の位置に進め、1 番目の要素を返します。2 回目のnext() の呼び出しは、イテレータを 2 番目の要素と 3 番目の要素の間の位置に進め、2 番目の要素を返します。以下同様です。

項目 A、B、C、D の間のイテレータの位置

特定の値のすべての出現箇所を検索したい場合は、ループ内で `findNext()` を使用してください。

同じセットに対して複数のイテレータを使用することができます。QSetIterator がアクティブな間にセットが変更された場合、QSetIterator は変更されたコピーを無視して、元のセットに対して反復処理を続行します。

QMutableSetIterator およびQSet::const_iteratorも参照してください 。

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

QSetIterator::QSetIterator(const QSet<T> &set)

set を順走するためのイテレータを作成します。このイテレータは、セットの先頭(最初の要素の前)に位置するように設定されます。

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

bool QSetIterator::findNext(const T &value)

現在のイテレータ位置から前方に向かって、value を検索します。value が見つかった場合は `true ` を返し、見つからなかった場合は `false` を返します。

呼び出し後、value が見つかった場合は、イテレータは一致した項目の直後に位置付けられます。見つからなかった場合は、イテレータはコンテナの末尾に位置付けられます。

bool QSetIterator::hasNext() const

イテレータの先方に少なくとも1つの要素が存在する場合(つまり、イテレータがコンテナの末尾にない場合)、true を返します。それ以外の場合は、false を返します。

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

const T &QSetIterator::next()

次の要素を返し、イテレータを1つ分進めます。

コンテナの末尾にあるイテレータに対してこの関数を呼び出すと、未定義の結果となります。

hasNext() およびpeekNext()も参照してください 。

const T &QSetIterator::peekNext() const

イテレータを移動させずに、次の要素を返します。

コンテナの末尾にあるイテレータに対してこの関数を呼び出すと、定義されていない結果となります。

hasNext() およびnext()も参照してください 。

void QSetIterator::toBack()

イテレータをコンテナの最後(最後の要素の直後)に移動します。

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

void QSetIterator::toFront()

イテレータをコンテナの先頭(最初の要素の前)に移動します。

toBack() およびnext()も参照してください 。

QSetIterator<T> &QSetIterator::operator=(const QSet<T> &set)

イテレータがset 上で動作するようにします。イテレータは、セットの先頭(最初の要素の前)に位置するように設定されます。

toFront() およびtoBack()も参照してください 。

© 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.