QListIterator Class

template <typename T> class QListIterator

QListIterator クラスは、QList およびQQueue のための Java スタイルの const イテレータを提供します。さらに...

Header: #include <QListIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック関数

QListIterator(const QList<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()
QListIterator<T> &operator=(const QList<T> &list)

詳細説明

QList にはJavaスタイルのイテレータと STLスタイルのイテレータの両方がある。STLスタイルのイテレータの方が効率的であり、そちらを優先すべきである。

イテレータを使う代わりに、インデックス・ポジションを使う方法もある。ほとんどのQList メンバ関数は、インデックスを最初のパラメータとして取るので、イテレータを使用せずにアイテムへのアクセス、変更、削除が可能です。

QListIterator<T>では、QList<T>、QQueue<T>、QStack<T>を反復処理することができます。反復処理中にリストを変更したい場合は、代わりにQMutableListIterator<T> を使用してください。

QListIterator コンストラクタは、引数としてQList を取ります。構築後、イテレータはリストの一番最初(最初の項目の前)に位置します。以下は、すべての要素を順次反復処理する方法です:

QList<float> list;
...
QListIterator<float> i(list);
while (i.hasNext())
    float f = i.next();

next ()関数はリストの次の項目を返し、イテレータを進めます。STLスタイルのイテレータとは異なり、Javaスタイルのイテレータは、項目を直接指定するのではなく、項目間を指定します。next ()の最初の呼び出しは、イテレータを1番目の項目と2番目の項目の間の位置に進め、1番目の項目を返します。next ()の2番目の呼び出しは、イテレータを2番目の項目と3番目の項目の間の位置に進め、2番目の項目を返します。

以下は、要素を逆順に反復処理する方法である:

QListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
    float f = i.previous();

特定の値のすべての出現箇所を見つけたい場合は、findNext ()またはfindPrevious ()をループ内で使用する。

同じリストに対して複数のイテレータを使用することができます。QListIterator がアクティブな間にリストが変更された場合、QListIterator は元のリストに対して反復処理を続け、変更されたコピーは無視されます。

QMutableListIterator およびQList::const_iteratorも参照してください

メンバ関数ドキュメント

QListIterator::QListIterator(const QList<T> &list)

list を走査するイテレータを構築する。イテレータはリストの先頭(最初の項目の前)に設定されます。

operator=()も参照

QListIterator<T> &QListIterator::operator=(const QList<T> &list)

イテレータをlist で操作するようにします。イテレータは、リストの先頭 (最初の項目の前) に設定されます。

toFront() およびtoBack() も参照

void QListIterator::toFront()

イテレータをコンテナの先頭 (最初の項目の前) に移動します。

toBack() およびnext() も参照

void QListIterator::toBack()

イテレータをコンテナの後ろ (最後の項目の後) に移動します。

toFront() およびprevious()も参照

bool QListIterator::hasNext() const

イテレータの前に少なくとも 1 つの項目がある場合、つまりイテレータがコンテナの後ろにない場合はtrue を返し、そうでない場合はfalse を返す。

hasPrevious() およびnext()も参照

bool QListIterator::hasPrevious() const

イテレータの後ろに少なくとも1つのアイテムがある場合、つまり、イテレータがコンテナの先頭にない場合はtrue を返し、そうでない場合はfalse を返す。

hasNext() およびprevious()も参照

bool QListIterator::findNext(const T &value)

現在のイテレータ位置から前方に向かってvalue を検索します。value が見つかればtrue を返し、見つからなければfalse を返す。

呼び出し後、value が見つかった場合、イテレータは一致する項目の直後に配置され、そうでない場合、イテレータはコンテナの後ろに配置されます。

findPrevious()も参照のこと

bool QListIterator::findPrevious(const T &value)

現在のイテレータ位置から後方に向かってvalue を検索する。value が見つかればtrue を返し、見つからなければ false を返す。

呼び出し後、value が見つかった場合、イテレータは一致する項目の直前に配置されます。そうでない場合、イテレータはコンテナの先頭に配置されます。

findNext()も参照

const T &QListIterator::next()

次の項目を返し、イテレータを 1 つ進めます。

コンテナの後ろに位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。

hasNext()、peekNext()、previous()も参照

const T &QListIterator::peekNext() const

イテレータを移動させずに次の項目を返す。

コンテナの後ろに位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。

hasNext()、next()、peekPrevious()も参照

const T &QListIterator::peekPrevious() const

イテレータを移動せずに前の項目を返す。

コンテナの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。

hasPrevious()、previous()、peekNext()も参照

const T &QListIterator::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。