const_iterator Class

class QMultiMap::const_iterator

QMultiMap::const_iterator クラスは、QMultiMap 用の STL スタイルの const イテレータを提供します。さらに...

公開型

パブリック関数

const_iterator()
const_iterator(const QMultiMap<Key, T>::iterator &other)
const Key &key() const
const T &value() const
const T &operator*() const
QMultiMap<Key, T>::const_iterator &operator++()
QMultiMap<Key, T>::const_iterator operator++(int)
QMultiMap<Key, T>::const_iterator &operator--()
QMultiMap<Key, T>::const_iterator operator--(int)
const T *operator->() const
bool operator!=(const QMultiMap<Key, T>::const_iterator &lhs, const QMultiMap<Key, T>::const_iterator &rhs)
bool operator==(const QMultiMap<Key, T>::const_iterator &lhs, const QMultiMap<Key, T>::const_iterator &rhs)

詳細説明

QMultiMap<Key, T>::const_iterator を使うと、QMultiMap を繰り返し処理することができます。QMultiMap を繰り返し処理しながら変更したい場合は、代わりにQMultiMap::iterator を使う必要があります。イテレータを通してQMultiMap を変更する必要がない限り、constQMultiMap 以外でもQMultiMap::const_iterator を使用するのが一般的です。constイテレータの方が若干高速で、コードの可読性も向上します。

デフォルトのQMultiMap::const_iterator コンストラクタは、初期化されていないイテレータを作成します。QMultiMap::cbegin ()、QMultiMap::cend ()、QMultiMap::constFind ()のようなQMultiMap 関数を使用して初期化しなければなりません。以下は、マップに格納されたすべての(キー、値)ペアを表示する典型的なループです:

QMultiMap<QString, int> multi;
multimap.insert("January", 1);
multimap.insert("February", 2);
...
multimap.insert("December", 12);

for (auto i = multimap.cbegin(), end = multimap.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

以下は、値が10より大きい項目をすべて削除する例である:

QMultiMap<QString, int>::const_iterator i = multimap.cbegin();
while (i != multimap.cend()) {
    if (i.value() > 10)
        i = multimap.erase(i);
    else
        ++i;
}

QMultiHash 、アイテムを任意の順序で格納するのとは異なり、QMultiMap 、アイテムをキー順に格納する。同じキーを共有する項目は、最近挿入された値から最近挿入されなかった値まで、連続して表示されます。

複数のイテレータを同じマルチ・マップで使用することができる。マップに項目を追加しても、既存のイテレータは有効です。マップから項目を削除すると、削除された項目を指すイテレータはぶら下がったイテレータになります。

警告 暗黙的に共有されたコンテナ上のイテレータは、STLイテレータのようには動作しません。イテレータがコンテナ上でアクティブになっている間は、コンテナをコピーしないようにする必要があります。詳細については、暗黙の共有イテレータ問題を参照してください。

QMultiMap::iteratorQMultiMap::key_iteratorQMultiMap::const_key_value_iteratorも参照

メンバ型ドキュメント

[alias] const_iterator::iterator_category

このイテレータが双方向イテレータであることを示すstd::bidirectional_iterator_tagのシノニム。

メンバ関数ドキュメント

const_iterator::const_iterator()

初期化されていないイテレータを構築します。

key(),value(), operator++() のような関数を、初期化されていないイテレータに対して呼んではいけません。operator=() を使用して値を代入してから使用してください。

QMultiMap::constBegin() およびQMultiMap::constEnd()も参照して ください。

const_iterator::const_iterator(const QMultiMap<Key, T>::iterator &other)

other のコピーを構築します。

const Key &const_iterator::key() const

現在の項目のキーを返します。

value()も参照して ください。

const T &const_iterator::value() const

現在の項目の値を返します。

key() およびoperator*() も参照して ください。

const T &const_iterator::operator*() const

現在の項目の値を返します。

value() と同じ。

key() も参照

QMultiMap<Key, T>::const_iterator &const_iterator::operator++()

前置演算子++ (++i) は、イテレータをマップ内の次の項目に進め、新しい現在の項目へのイテレータを返します。

この関数をQMultiMap::end() で呼び出すと、未定義の結果になります。

operator--()も参照してください

QMultiMap<Key, T>::const_iterator const_iterator::operator++(int)

これはオーバーロードされた関数です。

postfix++ 演算子 (i++) は、イテレータをマップの次の項目に進め、それ以前の現在の項目へのイテレータを返します。

QMultiMap<Key, T>::const_iterator &const_iterator::operator--()

前置演算子-- (--i) は、直前の項目を現在の項目にし、新しい現在の項目を指すイテレータを返します。

この関数をQMultiMap::begin() で呼び出すと、未定義の結果になります。

operator++()も参照してください

QMultiMap<Key, T>::const_iterator const_iterator::operator--(int)

これはオーバーロードされた関数です。

postfix-- 演算子(i--)は、直前の項目をカレントにし、直前のカレント項目を指すイテレータを返します。

const T *const_iterator::operator->() const

現在の項目の値へのポインタを返します。

value()も参照

関連する非メンバ

bool operator==(const QMultiMap<Key, T>::const_iterator &lhs, const QMultiMap<Key, T>::const_iterator &rhs)

lhsrhs イテレータと同じ項目を指している場合はtrue を返し、そうでない場合はfalse を返す。

operator!=() も参照

bool operator!=(const QMultiMap<Key, T>::const_iterator &lhs, const QMultiMap<Key, T>::const_iterator &rhs)

lhsrhs イテレータと異なる項目を指している場合はtrue を返し、そうでない場合はfalse を返す。

operator==()も参照

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