QFutureIterator Class
template <typename T> class QFutureIteratorQFutureIterator クラスは、QFuture のための Java スタイルの const イテレータを提供します。さらに...
Header: | #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
。
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()
イテレータを結果リストの最後尾(最後の結果の後)に移動します。
void QFutureIterator::toFront()
イテレータを結果リストの先頭 (最初の結果の前) に移動します。
QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)
イテレータをfuture で動作させます。イテレータは、結果リストの先頭 (最初の結果の前) に設定されます。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。