QMultiMapIterator Class

template <typename Key, typename T> class QMultiMapIterator

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

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

パブリック関数

QMultiMapIterator(const QMultiMap<Key, T> &map)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const Key &key() const
QMultiMapIterator<Key, T>::Item next()
QMultiMapIterator<Key, T>::Item peekPrevious() const
QMultiMapIterator<Key, T>::Item previous()
void toBack()
void toFront()
const T &value() const
QMultiMapIterator<Key, T> &operator=(const QMultiMap<Key, T> &map)

詳細説明

QMultiMapIterator<Key, T> を使用すると、QMultiMap を繰り返し処理できます。マップを繰り返し処理しながら変更したい場合は、代わりにQMutableMultiMapIterator を使用してください。

QMultiMapIterator コンストラクタは、引数としてQMultiMap を取ります。構築後、イテレータはマップの一番最初(最初のアイテムの前)に配置されます。以下は、すべての要素を順次反復処理する方法です:

QMultiMap<int, QWidget *> multimap;
...
QMultiMapIterator<int, QWidget *> i(multimap);
while (i.hasNext()) {
    i.next();
    qDebug() << i.key() << ": " << i.value();
}

next() 関数は、マップの次の項目を返し、イテレータを進める。key() とvalue() 関数は、最後にジャンプオーバーした項目のキーと値を返します。

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

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

QMultiMapIterator<int, QWidget *> i(multimap);
i.toBack();
while (i.hasPrevious()) {
    i.previous();
    qDebug() << i.key() << ": " << i.value();
}

特定の値の出現回数をすべて検索したい場合は、findNext ()またはfindPrevious ()をループ内で使用する。例えば

QMultiMapIterator<int, QWidget *> i(multimap);
while (i.findNext(widget)) {
    qDebug() << "Found widget " << widget << " under key "
             << i.key();
}

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

QMutableMultiMapIteratorも参照してください

メンバ関数ドキュメント

QMultiMapIterator::QMultiMapIterator(const QMultiMap<Key, T> &map)

map を走査するためのイテレータを構築します。イテレータはマップの先頭(最初のアイテムの前)に設定されます。

operator=()も参照

QMultiMapIterator<Key, T> &QMultiMapIterator::operator=(const QMultiMap<Key, T> &map)

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

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

void QMultiMapIterator::toFront()

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

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

void QMultiMapIterator::toBack()

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

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

bool QMultiMapIterator::hasNext() const

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

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

QMultiMapIterator<Key, T>::Item QMultiMapIterator::next()

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

項目のキーを取得するには戻り値でkey() を呼び出し、値を取得するにはvalue() を呼び出します。

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

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

bool QMultiMapIterator::hasPrevious() const

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

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

QMultiMapIterator<Key, T>::Item QMultiMapIterator::previous()

前の項目を返し、イテレータを 1 つ後ろに移動します。

項目のキーを取得するには戻り値でkey() を呼び出し、値を取得するにはvalue() を呼び出します。

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

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

QMultiMapIterator<Key, T>::Item QMultiMapIterator::peekPrevious() const

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

項目のキーを取得するには戻り値でkey() を呼び、値を取得するにはvalue() を呼びます。

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

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

const T &QMultiMapIterator::value() const

トラバーサル関数 (next()、previous()、findNext()、findPrevious()) のいずれかを使用してジャンプオーバーした最後の項目の値を返します。

next() またはfindNext() を呼び出した後、value() はpeekPrevious() と等価である。value().previous()またはfindPrevious()の呼び出し後、value()はpeekNext()と等価。value()。

key()も参照

const Key &QMultiMapIterator::key() const

トラバーサル関数 (next()、previous()、findNext()、findPrevious()) のいずれかを使用してジャンプオーバーした最後の項目のキーを返します。

next() またはfindNext() を呼び出した後、key() はpeekPrevious() と等価である。key().previous()またはfindPrevious()の呼び出し後、key()はpeekNext()と等価。key()。

value()も参照

bool QMultiMapIterator::findNext(const T &value)

現在のイテレータ位置から前方にvalue を検索する。値value を持つ (key, value) ペアが見つかればtrue を返し、見つからなければfalse を返す。

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

findPrevious()も参照のこと

bool QMultiMapIterator::findPrevious(const T &value)

現在のイテレータ位置から後方に向かってvalue を検索します。値value を持つ (key, value) ペアが見つかればtrue を返し、見つからなければfalse を返す。

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

findNext()も参照のこと

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。