QMutableSetIterator Class

template <typename T> class QMutableSetIterator

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

Header: #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() を使用してジャンプオーバーした最後の項目の値を返します。

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