key_iterator Class
class QMultiMap::key_iteratorQMultiMap::key_iterator クラスは、QMultiMap キー用の STL スタイルの const イテレータを提供します。さらに...
パブリック関数
QMultiMap<Key, T>::const_iterator | base() const |
bool | operator!=(QMultiMap<Key, T>::key_iterator other) const |
const Key & | operator*() const |
QMultiMap<Key, T>::key_iterator & | operator++() |
QMultiMap<Key, T>::key_iterator | operator++(int) |
QMultiMap<Key, T>::key_iterator & | operator--() |
QMultiMap<Key, T>::key_iterator | operator--(int) |
const Key * | operator->() const |
bool | operator==(QMultiMap<Key, T>::key_iterator other) const |
詳細説明
QMultiMap::key_iterator は基本的に と同じですが、 operator*() と operator->() が値の代わりにキーを返す点が異なります。QMultiMap::const_iterator
ほとんどの用途では、QMultiMap::iterator とQMultiMap::const_iterator を使用する必要があります。QMultiMap::iterator::key() を呼び出すことで、簡単にキーにアクセスできます:
for (auto it = multimap.cbegin(), end = multimap.cend(); it != end; ++it) { cout << "The key: " << it.key() << endl cout << "The value: " << qPrintable(it.value()) << endl; cout << "Also the value: " << qPrintable(*it) << endl; }
しかし、QMultiMap のキーとSTLスタイルのアルゴリズムとの相互運用性を確保するためには、値の代わりにキーを参照解除するイテレータが必要です。QMultiMap::key_iterator を使用すれば、QMultiMap::keys() を呼び出すことなく、キーの範囲にアルゴリズムを適用することができます。QMultiMap の繰り返しと、一時的なQList を作成するためのメモリ割り当てが1回かかるので、非効率的です。
// Inefficient, keys() is expensive QList<int> keys = multimap.keys(); int numPrimes = std::count_if(multimap.cbegin(), multimap.cend(), isPrimeNumber); qDeleteAll(multimap2.keys()); // Efficient, no memory allocation needed int numPrimes = std::count_if(multimap.keyBegin(), multimap.keyEnd(), isPrimeNumber); qDeleteAll(multimap2.keyBegin(), multimap2.keyEnd());
QMultiMap::key_iterator がconstの場合、キーを変更することはできない。
デフォルトのQMultiMap::key_iterator コンストラクタは、初期化されていないイテレータを作成します。QMultiMap::keyBegin() やQMultiMap::keyEnd() のようなQMultiMap 関数を使用して初期化する必要があります。
警告 暗黙的に共有されたコンテナ上のイテレータは、STLイテレータのようには動作しません。コンテナ上でイテレータがアクティブになっている間は、コンテナをコピーしないようにする必要があります。詳細については、暗黙の共有イテレータ問題を参照してください。
QMultiMap::const_iterator およびQMultiMap::iteratorも参照して ください。
メンバ関数ドキュメント
QMultiMap<Key, T>::const_iterator key_iterator::base() const
このイテレータkey_iterator が基づいているconst_iterator を返します。
bool key_iterator::operator!=(QMultiMap<Key, T>::key_iterator other) const
other がこのイテレータとは異なる項目を指している場合はtrue
を返し、そうでない場合はfalse
を返します。
operator==()も参照 。
const Key &key_iterator::operator*() const
現在の項目のキーを返します。
QMultiMap<Key, T>::key_iterator &key_iterator::operator++()
前置演算子++
(++i
) は、イテレータをハッシュの次の項目に進め、新しい現在の項目へのイテレータを返します。
この関数をQMultiMap::keyEnd() で呼び出すと、未定義の結果になります。
operator--()も参照してください 。
QMultiMap<Key, T>::key_iterator key_iterator::operator++(int)
これはオーバーロードされた関数です。
postfix++
演算子 (i++
) は、イテレータをハッシュの次の項目に進め、前の項目へのイテレータを返す。
QMultiMap<Key, T>::key_iterator &key_iterator::operator--()
前置演算子--
(--i
) は、直前の項目を現在の項目にし、新しい現在の項目を指すイテレータを返します。
この関数をQMultiMap::keyBegin() で呼び出すと、未定義の結果になります。
operator++()も参照してください 。
QMultiMap<Key, T>::key_iterator key_iterator::operator--(int)
これはオーバーロードされた関数です。
postfix--
演算子 (i--
) は、直前の項目を現在の項目にし、直前の項目を指すイテレータを返す。
const Key *key_iterator::operator->() const
現在の項目のキーへのポインタを返します。
bool key_iterator::operator==(QMultiMap<Key, T>::key_iterator other) const
other がこのイテレータと同じ項目を指している場合はtrue
を返し、そうでない場合はfalse
を返します。
operator!=()も参照してください 。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。