QFutureIterator Class
template <typename T> class QFutureIteratorQFutureIterator クラスは、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 を返す。
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()
イテレータを結果リストの最後尾(最後の結果の後)に移動します。
void QFutureIterator::toFront()
イテレータを結果リストの先頭(最初の結果の前)に移動します。
QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)
イテレータをfuture で動作させる。イテレータは、結果リストの先頭(最初の結果の前)に設定されます。
© 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.