QMapIterator Class
template <typename Key, typename T> class QMapIteratorQMapIterator クラスは、QMap 用の Java スタイルの const イテレータを提供します。詳細...
Header: | #include <QMapIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
パブリック関数
QMapIterator(const QMap<Key, T> &map) | |
bool | findNext(const T &value) |
bool | findPrevious(const T &value) |
bool | hasNext() const |
bool | hasPrevious() const |
const Key & | key() const |
QMapIterator<Key, T>::Item | next() |
QMapIterator<Key, T>::Item | peekNext() const |
QMapIterator<Key, T>::Item | peekPrevious() const |
QMapIterator<Key, T>::Item | previous() |
void | toBack() |
void | toFront() |
const T & | value() const |
QMapIterator<Key, T> & | operator=(const QMap<Key, T> &map) |
詳細説明
QMap にはJavaスタイルのイテレータと STLスタイルのイテレータの両方がある。STL 形式のイテレータの方が効率的なので、そちらを優先してください。
QMapIterator<Key, T> を使うと、QMap を繰り返し処理できます。マップを繰り返し処理しながら変更したい場合は、代わりにQMutableMapIterator を使ってください。
QMapIterator コンストラクタは、引数としてQMap を取ります。構築後、イテレータはマップの一番最初(最初の項目の前)に配置されます。以下は、すべての要素を順次反復処理する方法です:
QMap<int, QWidget *> map; ... QMapIterator<int, QWidget *> i(map); while (i.hasNext()) { i.next(); qDebug() << i.key() << ": " << i.value(); }
next() 関数は、マップの次の項目を返し、イテレータを進める。key() とvalue() 関数は、最後にジャンプオーバーした項目のキーと値を返します。
STLスタイルのイテレータとは異なり、Javaスタイルのイテレータは、項目を直接指すのではなく、項目間を指す。next ()の最初の呼び出しは、イテレータを最初の項目と2番目の項目の間の位置に進め、最初の項目を返します。next ()の2番目の呼び出しは、イテレータを2番目の項目と3番目の項目の間の位置に進めます。
以下は、要素を逆順に反復処理する方法である:
QMapIterator<int, QWidget *> i(map); i.toBack(); while (i.hasPrevious()) { i.previous(); qDebug() << i.key() << ": " << i.value(); }
特定の値の出現回数をすべて検索したい場合は、findNext ()またはfindPrevious ()をループ内で使用する。例えば
QMapIterator<int, QWidget *> i(map); while (i.findNext(widget)) { qDebug() << "Found widget " << widget << " under key " << i.key(); }
同じマップに対して複数のイテレータを使用できる。QMapIterator がアクティブな間にマップが変更された場合、QMapIterator は元のマップを反復処理し続け、変更されたコピーは無視されます。
QMutableMapIterator およびQMap::const_iteratorも参照してください 。
メンバ関数ドキュメント
QMapIterator::QMapIterator(const QMap<Key, T> &map)
map を走査するイテレータを構築します。イテレータはマップの先頭(最初の項目の前)に設定されます。
operator=()も参照 。
QMapIterator<Key, T> &QMapIterator::operator=(const QMap<Key, T> &map)
イテレータをmap で操作するようにします。イテレータは、マップの先頭 (最初の項目の前) に設定されます。
void QMapIterator::toFront()
イテレータをコンテナの先頭 (最初の項目の前) に移動します。
void QMapIterator::toBack()
イテレータをコンテナの後ろ (最後の項目の後) に移動します。
bool QMapIterator::hasNext() const
イテレータの前に少なくとも 1 つの項目がある場合、つまりイテレータがコンテナの後ろにない場合はtrue
を返し、そうでない場合はfalse
を返す。
hasPrevious() およびnext()も参照 。
QMapIterator<Key, T>::Item QMapIterator::next()
次の項目を返し、イテレータを 1 つ進めます。
項目のキーを取得するには戻り値でkey() を呼び出し、値を取得するにはvalue() を呼び出します。
コンテナの後方に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasNext()、peekNext()、previous()も参照 。
QMapIterator<Key, T>::Item QMapIterator::peekNext() const
イテレータを移動せずに次の項目を返します。
項目のキーを取得するには戻り値でkey() を呼び出し、値を取得するにはvalue() を呼び出します。
コンテナの後方に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasNext()、next()、peekPrevious()も参照 。
bool QMapIterator::hasPrevious() const
イテレータの後ろに少なくとも1つの項目がある場合、つまりイテレータがコンテナの前面にない場合はtrue
を返し、そうでない場合はfalse
を返します。
QMapIterator<Key, T>::Item QMapIterator::previous()
前の項目を返し、イテレータを 1 つ後ろに移動します。
項目のキーを取得するには戻り値でkey() を呼び出し、値を取得するにはvalue() を呼び出します。
コンテナの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasPrevious()、peekPrevious()、next()も参照 。
QMapIterator<Key, T>::Item QMapIterator::peekPrevious() const
イテレータを移動せずに前の項目を返します。
項目のキーを取得するには戻り値でkey() を呼び、値を取得するにはvalue() を呼びます。
コンテナの先頭に位置するイテレータに対してこの関数を呼び出すと、未定義の結果になります。
hasPrevious()、previous()、peekNext()も参照 。
const T &QMapIterator::value() const
トラバーサル関数 (next()、previous()、findNext()、findPrevious()) のいずれかを使用してジャンプオーバーした最後の項目の値を返します。
next() またはfindNext() を呼び出した後、value() はpeekPrevious() と等価である。value().previous()またはfindPrevious()へのコールの後、value()はpeekNext()と等価である。value()。
key()も参照 。
const Key &QMapIterator::key() const
トラバーサル関数 (next()、previous()、findNext()、findPrevious()) のいずれかを使用してジャンプオーバーした最後の項目のキーを返します。
next() またはfindNext() を呼び出した後、key() はpeekPrevious() と等価である。key().previous()またはfindPrevious()へのコールの後、key()はpeekNext()と等価である。key()。
value()も参照 。
bool QMapIterator::findNext(const T &value)
現在のイテレータ位置から前方に向かってvalue を検索する。値value を持つ (key, value) ペアが見つかればtrue
を返し、見つからなければfalse
を返す。
呼び出し後、value が見つかった場合、イテレータは一致する項目の直後に配置されます。そうでない場合、イテレータはコンテナの後ろに配置されます。
findPrevious()も参照のこと 。
bool QMapIterator::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。