QLinkedListIterator Class
template <typename T> class QLinkedListIteratorQLinkedListIterator クラスは、QLinkedList 用の Java スタイルの const イテレータを提供します。さらに...
Header: | #include <QLinkedListIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
パブリック関数
QLinkedListIterator(const QLinkedList<T> &list) | |
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() |
QLinkedListIterator<T> & | operator=(const QLinkedList<T> &list) |
詳細説明
QLinkedList には、Javaスタイルのイテレータと STLスタイルのイテレータの両方がある。Javaスタイルのイテレータは、STLスタイルのイテレータよりも高レベルで使いやすい。
QLinkedListIterator<T>では、QLinkedList<T>を反復処理することができます。反復処理中にリストを変更したい場合は、代わりにQMutableLinkedListIterator<T> を使用してください。
QLinkedListIterator コンストラクタは、引数としてQLinkedList を取ります。構築後、イテレータはリストの一番最初(最初の項目の前)に位置します。以下は、すべての要素を順次反復処理する方法です:
QLinkedList<float> list; ... QLinkedListIterator<float> i(list); while (i.hasNext()) qDebug() << i.next();
next ()関数はリストの次の項目を返し、イテレータを進めます。STLスタイルのイテレータとは異なり、Javaスタイルのイテレータは、項目を直接指定するのではなく、項目間を指定します。next ()の最初の呼び出しは、イテレータを1番目の項目と2番目の項目の間の位置に進め、1番目の項目を返します。next ()の2番目の呼び出しは、イテレータを2番目の項目と3番目の項目の間の位置に進め、2番目の項目を返します。
以下は、要素を逆順に反復処理する方法である:
QLinkedListIterator<float> i(list); i.toBack(); while (i.hasPrevious()) qDebug() << i.previous();
特定の値のすべての出現箇所を見つけたい場合は、findNext ()またはfindPrevious ()をループ内で使用する。
同じリストに対して複数のイテレータを使用することができます。QLinkedListIterator がアクティブな間にリストが変更された場合、QLinkedListIterator は元のリストに対して反復処理を続け、変更されたコピーは無視されます。
QMutableLinkedListIterator およびQLinkedList::const_iteratorも参照してください 。
メンバ関数ドキュメント
QLinkedListIterator::QLinkedListIterator(const QLinkedList<T> &list)
list を走査するイテレータを構築する。イテレータはリストの先頭(最初の項目の前)に設定されます。
operator=()も参照 。
QLinkedListIterator<T> &QLinkedListIterator::operator=(const QLinkedList<T> &list)
イテレータをlist で操作するようにします。イテレータは、リストの先頭 (最初の項目の前) に設定されます。
void QLinkedListIterator::toFront()
イテレータをコンテナの先頭 (最初の項目の前) に移動します。
void QLinkedListIterator::toBack()
イテレータをコンテナの後ろ (最後の項目の後) に移動します。
bool QLinkedListIterator::hasNext() const
イテレータの前に少なくとも 1 つの項目がある場合、つまりイテレータがコンテナの後ろにない場合はtrue
を返し、そうでない場合はfalse
を返す。
hasPrevious() およびnext()も参照 。
bool QLinkedListIterator::hasPrevious() const
イテレータの後ろに少なくとも1つのアイテムがある場合、つまり、イテレータがコンテナの先頭にない場合はtrue
を返し、そうでない場合はfalse
を返す。
bool QLinkedListIterator::findNext(const T &value)
現在のイテレータ位置から前方に向かってvalue を検索します。value が見つかればtrue
を返し、見つからなければfalse
を返す。
呼び出し後、value が見つかった場合、イテレータは一致する項目の直後に配置され、そうでない場合、イテレータはコンテナの後ろに配置されます。
findPrevious()も参照のこと 。
bool QLinkedListIterator::findPrevious(const T &value)
現在のイテレータ位置から後方に向かってvalue を検索する。value が見つかればtrue
を返し、見つからなければ false を返す。
呼び出し後、value が見つかった場合、イテレータは一致する項目の直前に配置されます。そうでない場合、イテレータはコンテナの先頭に配置されます。
findNext()も参照 。
const T &QLinkedListIterator::next()
次の項目を返し、イテレータを 1 つ進めます。
コンテナの後ろに位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasNext()、peekNext()、previous()も参照 。
const T &QLinkedListIterator::peekNext() const
イテレータを移動させずに次の項目を返す。
コンテナの後ろに位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasNext()、next()、peekPrevious()も参照 。
const T &QLinkedListIterator::peekPrevious() const
イテレータを移動せずに前の項目を返す。
コンテナの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasPrevious()、previous()、peekNext()も参照 。
const T &QLinkedListIterator::previous()
前の項目を返し、イテレータを 1 つ後ろの位置に移動します。
コンテナの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasPrevious()、peekPrevious()、next()も参照 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。