QLinkedListIterator Class
template <typename T> class QLinkedListIteratorQLinkedListIterator クラスは、QLinkedList 用の Java スタイルの const イテレータを提供します。さらに...
ヘッダー | #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 ()への最初の呼び出しは、イテレータを最初の項目と2番目の項目の間の位置に進め、最初の項目を返します。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()も参照 。
© 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.