QFutureIterator Class

template <typename T> class QFutureIterator

QFutureIterator クラスは、QFuture のための Java スタイルの const イテレータを提供します。さらに...

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

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QFutureIterator(const QFuture<T> &future)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const T &next()
const T &peekNext() const
const T &peekPrevious() const
const T &previous()
void toBack()
void toFront()
QFutureIterator<T> &operator=(const QFuture<T> &future)

詳細説明

QFuture には、Javaスタイルのイテレータと STLスタイルのイテレータの両方があります。Javaスタイルのイテレータは、STLスタイルのイテレータよりも高レベルで使いやすい。

イテレータを使う代わりに、インデックス・ポジションを使う方法もある。QFuture メンバ関数の中には、インデックスを最初のパラメータとして取るものがあり、イテレータを使用せずに結果にアクセスすることが可能です。

QFutureIterator<T> では、QFuture<T> を反復処理できます。(他の Java スタイルのイテレータとは異なり)QFuture には mutable イテレータがないことに注意してください。

QFutureIterator コンストラクタは、引数としてQFuture を取ります。構築後、イテレータは結果リストの一番最初(つまり最初の結果の前)に位置します。以下は、すべての結果を順次反復処理する方法です:

QFuture<QString> future;
...
QFutureIterator<QString> i(future);
while (i.hasNext())
    QString s = i.next();

next ()関数は、未来から次の結果を(必要であれば、それが利用可能になるのを待って)返し、イテレータを進めます。STLスタイルのイテレータとは異なり、Javaスタイルのイテレータは、結果を直接指すのではなく、結果の間を指す。最初のnext ()の呼び出しは、イテレータを1番目と2番目の結果の間の位置に進め、1番目の結果を返します。2番目のnext ()の呼び出しは、イテレータを2番目と3番目の結果の間の位置に進め、2番目の結果を返します。

以下は、要素を逆順に反復処理する方法である:

QFutureIterator<QString> i(future);
i.toBack();
while (i.hasPrevious())
    QString s = i.previous();

特定の値の出現回数をすべて見つけたい場合は、findNext ()またはfindPrevious ()をループ内で使用する。

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

QFuture::const_iterator およびQFutureも参照してください

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

QFutureIterator::QFutureIterator(const QFuture<T> &future)

future を走査するためのイテレータを構築する。イテレータは、結果リストの先頭 (最初の結果の前) に設定されます。

operator=()も参照

bool QFutureIterator::findNext(const T &value)

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

呼び出し後、value が見つかった場合、イテレータはマッチした結果の直後に配置される。そうでない場合、イテレータは結果リストの後ろに配置される。

findPrevious()も参照

bool QFutureIterator::findPrevious(const T &value)

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

呼び出し後、value が見つかった場合、イテレータは一致する結果の直前に配置される。そうでない場合、イテレータは結果リストの先頭に配置される。

findNext()も参照

bool QFutureIterator::hasNext() const

イテレータの前に少なくとも1つの結果がある場合(例えば、イテレータが結果リストの最後尾にない場合)にはtrue を返し、そうでない場合は false を返す。

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

bool QFutureIterator::hasPrevious() const

イテレータが結果リストの先頭にないなど、イテレータの前に少なくとも1つの結果がある場合はtrue を返し、そうでない場合は false を返す。

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

const T &QFutureIterator::next()

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

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

hasNext()、peekNext()、previous()も参照

const T &QFutureIterator::peekNext() const

イテレータを移動せずに次の結果を返す。

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

hasNext()、next()、peekPrevious()も参照

const T &QFutureIterator::peekPrevious() const

イテレータを移動せずに直前の結果を返す。

結果リストの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。

hasPrevious()、previous()、peekNext()も参照

const T &QFutureIterator::previous()

前の結果を返し、イテレータを1つ後ろに移動する。

結果リストの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。

hasPrevious()、peekPrevious()、next()も参照

void QFutureIterator::toBack()

イテレータを結果リストの最後尾(最後の結果の後)に移動します。

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

void QFutureIterator::toFront()

イテレータを結果リストの先頭(最初の結果の前)に移動します。

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

QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)

イテレータをfuture で動作させる。イテレータは、結果リストの先頭(最初の結果の前)に設定されます。

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

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