QMutableSetIterator Class

template <typename T> class QMutableSetIterator

QMutableSetIteratorクラスは、QSet 、Javaスタイルの非定数イテレータを提供します。さらに...

ヘッダー #include <QMutableSetIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック関数

QMutableSetIterator(QSet<T> &set)
bool findNext(const T &value)
bool hasNext() const
const T &next()
const T &peekNext() const
void remove()
void toBack()
void toFront()
const T &value() const
QMutableSetIterator<T> &operator=(QSet<T> &set)

詳細説明

QSet にはJavaスタイルのイテレータと STLスタイルのイテレータの両方がある。STLスタイルのイテレータの方が効率的であり、そちらを優先すべきです。

QMutableSetIterator<T>は、QSet<T>に対して反復処理を行い、反復処理中にセットから項目を削除することができます。セットを変更したくない(あるいは、QSet を const で指定したい)場合は、代わりに少し高速なQSetIterator<T> を使用してください。

QMutableSetIteratorコンストラクタは、引数としてQSet 。構築後、イテレーターはセットの一番最初(最初の項目の前)に位置します。以下は、すべての要素を順次反復処理する方法です:

QSet<float> set;
...
QMutableSetIterator<float> i(set);
while (i.hasNext())
    float f = i.next();

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

セットを繰り返しながら項目を削除したい場合は、remove() を使用します。

1つのセットでアクティブにできるミュータブル・イテレータは1つだけです。さらに、イテレータがアクティブな間は(イテレータを通してではなく)セットに直接変更を加えてはいけません。

QSetIterator およびQSet::iteratorも参照して ください。

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

QMutableSetIterator::QMutableSetIterator(QSet<T> &set)

set を走査するためのイテレータを構築します。イテレータは、セットの先頭 (最初のアイテムの前) に設定されます。

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

QMutableSetIterator<T> &QMutableSetIterator::operator=(QSet<T> &set)

イテレータをset で動作させます。イテレータはセットの先頭(最初のアイテムの前)に設定されます。

toFront() およびtoBack()も参照

void QMutableSetIterator::toFront()

イテレータをコンテナの先頭(最初の項目の前)に移動する。

toBack() およびnext()も参照

bool QMutableSetIterator::findNext(const T &value)

現在のイテレータ位置から前方に向かってvalue を検索する。value が見つかればtrue を返し、見つからなければfalse を返す。

呼び出し後、value が見つかった場合、イテレータは一致するアイテムの直後に配置される。そうでない場合、イテレータはコンテナの後ろに配置される。

bool QMutableSetIterator::hasNext() const

イテレータの前に少なくとも1つのアイテムがある場合、つまりイテレータがコンテナの後ろにない場合はtrue を返し、そうでない場合はfalse を返す。

next()も参照

const T &QMutableSetIterator::next()

次の項目を返し、イテレータを1つ進めます。

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

hasNext() およびpeekNext()も参照

const T &QMutableSetIterator::peekNext() const

イテレータを移動させずに次の項目を返す。

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

hasNext() およびnext()も参照

void QMutableSetIterator::remove()

トラバーサル関数 (next(),findNext()) のいずれかを使ってジャンプオーバーした最後の項目を削除します。

例:

QMutableSetIterator<int> i(set);
while (i.hasNext()) {
    int val = i.next();
    if (val < -32768 || val > 32767)
        i.remove();
}

value()も参照

void QMutableSetIterator::toBack()

イテレータをコンテナの後ろ(最後のアイテムの後)に移動します。

toFront()も参照

const T &QMutableSetIterator::value() const

next() またはfindNext() を使って最後にジャンプオーバーした項目の値を返す。

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