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> を反復処理できます。ここで、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=()も参照してください 。
bool QLinkedListIterator::findNext(const T &value)
現在のイテレータの位置から前方に向かって「value 」を検索します。value が見つかった場合はtrue を返し、見つからなかった場合はfalse を返します。
呼び出し後、value が見つかった場合は、イテレータは一致した項目の直後に位置付けられます。見つからなかった場合は、イテレータはコンテナの末尾に位置付けられます。
findPrevious()も参照してください 。
bool QLinkedListIterator::findPrevious(const T &value)
現在のイテレータの位置から過去に向かって、value を検索します。value が見つかった場合は `true ` を返し、見つからなかった場合は `false` を返します。
呼び出し後、value が見つかった場合は、イテレータは一致する項目の直前に位置付けられます。見つからなかった場合は、イテレータはコンテナの先頭に位置付けられます。
findNext()も参照してください 。
bool QLinkedListIterator::hasNext() const
イテレータの先方に少なくとも1つの要素が存在する場合、つまりイテレータがコンテナの末尾にない場合は、true を返します。それ以外の場合は、false を返します。
hasPrevious() およびnext()も参照してください 。
bool QLinkedListIterator::hasPrevious() const
イテレータの先頭より後ろに少なくとも1つの要素が存在する場合、つまりイテレータがコンテナの先頭ではない場合は、true を返します。それ以外の場合は、false を返します。
hasNext() およびprevious()も参照してください 。
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()も参照してください 。
void QLinkedListIterator::toBack()
イテレータをコンテナの末尾(最後の要素の直後)に移動します。
toFront() およびprevious()も参照してください 。
void QLinkedListIterator::toFront()
イテレータをコンテナの先頭(最初の要素の前)に移動します。
QLinkedListIterator<T> &QLinkedListIterator::operator=(const QLinkedList<T> &list)
イテレータが `list` 上で動作するようにします。イテレータはリストの先頭(最初の要素の前)に位置するように設定されます。
© 2026 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.