QMultiHash Class

template <typename Key, typename T> class QMultiHash

QMultiHash クラスは、多値ハッシュを提供する便利なQHash サブクラスです。詳細...

ヘッダー #include <QMultiHash>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注意:このクラスの関数はすべてリエントラントです。

パブリック型

パブリック関数

QMultiHash()
QMultiHash(const QHash<Key, T> &other)
QMultiHash(std::initializer_list<std::pair<Key, T>> list)
QMultiHash(InputIterator begin, InputIterator end)
(since 6.4) auto asKeyValueRange() &&
(since 6.4) auto asKeyValueRange() &
(since 6.4) auto asKeyValueRange() const &&
(since 6.4) auto asKeyValueRange() const &
QMultiHash<Key, T>::iterator begin()
QMultiHash<Key, T>::const_iterator begin() const
QMultiHash<Key, T>::const_iterator cbegin() const
QMultiHash<Key, T>::const_iterator cend() const
void clear()
QMultiHash<Key, T>::const_iterator constBegin() const
QMultiHash<Key, T>::const_iterator constEnd() const
QMultiHash<Key, T>::const_iterator constFind(const Key &key, const T &value) const
QMultiHash<Key, T>::const_key_value_iterator constKeyValueBegin() const
QMultiHash<Key, T>::const_key_value_iterator constKeyValueEnd() const
bool contains(const Key &key, const T &value) const
qsizetype count(const Key &key, const T &value) const
QMultiHash<Key, T>::iterator emplace(Key &&key, Args &&... args)
QMultiHash<Key, T>::iterator emplace(const Key &key, Args &&... args)
QMultiHash<Key, T>::iterator emplaceReplace(Key &&key, Args &&... args)
QMultiHash<Key, T>::iterator emplaceReplace(const Key &key, Args &&... args)
QMultiHash<Key, T>::iterator end()
QMultiHash<Key, T>::const_iterator end() const
std::pair<QMultiHash<Key, T>::iterator, QMultiHash<Key, T>::iterator> equal_range(const Key &key)
std::pair<QMultiHash<Key, T>::const_iterator, QMultiHash<Key, T>::const_iterator> equal_range(const Key &key) const
QMultiHash<Key, T>::iterator find(const Key &key, const T &value)
QMultiHash<Key, T>::const_iterator find(const Key &key, const T &value) const
QMultiHash<Key, T>::iterator insert(const Key &key, const T &value)
Key key(const T &value) const
Key key(const T &value, const Key &defaultKey) const
QMultiHash<Key, T>::key_iterator keyBegin() const
QMultiHash<Key, T>::key_iterator keyEnd() const
QMultiHash<Key, T>::key_value_iterator keyValueBegin()
QMultiHash<Key, T>::const_key_value_iterator keyValueBegin() const
QMultiHash<Key, T>::key_value_iterator keyValueEnd()
QMultiHash<Key, T>::const_key_value_iterator keyValueEnd() const
QList<Key> keys() const
qsizetype remove(const Key &key)
qsizetype remove(const Key &key, const T &value)
(since 6.1) qsizetype removeIf(Predicate pred)
QMultiHash<Key, T>::iterator replace(const Key &key, const T &value)
void swap(QMultiHash<Key, T> &other)
T take(const Key &key)
QList<Key> uniqueKeys() const
(since 6.0) QMultiHash<Key, T> &unite(const QHash<Key, T> &other)
QMultiHash<Key, T> &unite(const QMultiHash<Key, T> &other)
T value(const Key &key) const
T value(const Key &key, const T &defaultValue) const
QList<T> values() const
QList<T> values(const Key &key) const
QMultiHash<Key, T> operator+(const QMultiHash<Key, T> &other) const
QMultiHash<Key, T> &operator+=(const QMultiHash<Key, T> &other)
T &operator[](const Key &key)
(since 6.1) qsizetype erase_if(QMultiHash<Key, T> &hash, Predicate pred)
size_t qHash(const QMultiHash<Key, T> &key, size_t seed = 0)
QDataStream &operator<<(QDataStream &out, const QMultiHash<Key, T> &hash)
QDataStream &operator>>(QDataStream &in, QMultiHash<Key, T> &hash)

詳細説明

QMultiHash<Key, T> は Qt の汎用コンテナクラスのひとつです。このクラスはQHash を継承し、QHash よりも多値ハッシュを格納するのに適したいくつかの便利な関数で拡張しています。多値ハッシュとは、同じキーで複数の値を格納できるハッシュのことです。

QMultiHashは、QHash のAPIをほぼ踏襲している。例えば、isEmpty() を使ってハッシュが空かどうかをテストしたり、QHash のイテレータ・クラス(例えば、QHashIterator )を使ってQMultiHashをトラバースすることができます。しかし、QHash とは対照的に、insert() 関数が用意されており、同じキーを持つ複数のアイテムを挿入することができます。replace() 関数はQHash::insert() に相当する。また、便利な operator+() と operator+=() も用意されている。

QMultiMap とは異なり、QMultiHash は挿入される項目の順序付けを提供しない。唯一の保証は、同じキーを共有する項目が、最近挿入された値から最近挿入された値まで、連続して現れるということである。

QMultiHash<QString, int> hash1, hash2, hash3;

hash1.insert("plenty", 100);
hash1.insert("plenty", 2000);
// hash1.size() == 2

hash2.insert("plenty", 5000);
// hash2.size() == 1

hash3 = hash1 + hash2;
// hash3.size() == 3

QHash とは異なり、QMultiHash には演算子[]がありません。あるキーで最近挿入された項目にアクセスしたい場合は、value() またはreplace() を使用してください。

1つのキーに対するすべての値を取得したい場合は、QList<T>を返す values(const Key &key) を使用できます:

QList<int> values = hash.values("plenty");
for (auto i : std::as_const(values))
    cout << i << endl;

同じキーを共有するアイテムは、最近挿入されたものから最近挿入されなかったものまで利用可能です。

より効率的な方法は、find() を呼び出して、キーを持つ最初のアイテムの STL 形式の反復子を取得し、そこから反復することです:

auto i = hash.constFind("plenty");
while (i != hash.cend() && i.key() == "plenty") {
    cout << i.value() << endl;
    ++i;
}

QMultiHashのキーと値のデータ型は、割り当て可能なデータ型でなければなりません。例えば、QWidget を値として格納することはできません。代わりに、QWidget * を格納します。さらに、QMultiHash のキー・タイプは operator==() を提供する必要があり、キーのタイプの引数に対してハッシュ値を返すqHash() 関数もそのタイプの名前空間に存在する必要があります。詳細はQHash のドキュメントを参照。

QHashQHashIteratorQMutableHashIteratorQMultiMapも参照のこと

メンバ型のドキュメント

QMultiHash::const_key_value_iterator

QMultiHash::const_key_value_iterator typedef は、QMultiHash に対する STL スタイルの const イテレータを提供する。

QMultiHash::const_key_value_iterator は基本的にQMultiHash::const_iterator と同じですが、 operator*() が値の代わりにキーと値のペアを返す点が異なります。

QKeyValueIteratorも参照してください

QMultiHash::key_value_iterator

QMultiHash::key_value_iterator typedef は、QMultiHash に対する STL スタイルのイテレータを提供する。

QMultiHash::key_value_iterator はQMultiHash::iterator と本質的に同じですが、 operator*() が値の代わりにキーと値のペアを返す点が異なります。

QKeyValueIteratorも参照してください

メンバ関数のドキュメント

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplace(Key &&key, Args &&... args)

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplace(const Key &key, Args &&... args)

コンテナに新しい要素を挿入する。この新しい要素は、args を引数としてインプレースで作成されます。

ハッシュ内に同じキーを持つ項目が既に存在する場合、この関数は単に新しい項目を作成します。(この動作は、既存の項目の値を上書きするreplace() とは異なります)。

新しい要素を指すイテレータを返します。

警告: 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、またはハッシュが破棄されたときに無効となります。

insertも参照してください

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplaceReplace(Key &&key, Args &&... args)

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplaceReplace(const Key &key, Args &&... args)

コンテナに新しい要素を挿入する。この新しい要素は、args を引数としてインプレースで構築される。

ハッシュ内に同じキーを持つ項目が既に存在する場合、その項目の値はargs から構築された値で置き換えられます。

新しい要素を指すイテレータを返します。

警告: 返されたイテレータ/参照は、次にハッシュに対してconstでない関数を呼び出したとき、またはハッシュが破棄されたときには無効になっていると考えるべきです。

replace およびemplaceも参照のこと

[noexcept] T QMultiHash::value(const Key &key) const

[noexcept] T QMultiHash::value(const Key &key, const T &defaultValue) const

key に関連付けられた値を返す。

ハッシュにkey の項目がない場合、この関数はdefaultValue を返し、このパラメータが指定されていない場合はデフォルトの値を返す。

ハッシュ内にkey の項目が複数ある場合は、最近挿入された項目の値が返されます。

[noexcept] Key QMultiHash::key(const T &value) const

[noexcept] Key QMultiHash::key(const T &value, const Key &defaultKey) const

value にマップされた最初のキーを返す。 ハッシュにvalue にマップされた項目がない場合、defaultKey を返し、このパラメータが与えられていない場合はデフォルトで構成されたキーを返す。

QMultiHash の内部データ構造は、値ではなくキーによる高速検索に最適化されているため、この関数は遅い(線形時間)。

[since 6.4] auto QMultiHash::asKeyValueRange() &

[since 6.4] auto QMultiHash::asKeyValueRange() &&

[since 6.4] auto QMultiHash::asKeyValueRange() const &

[since 6.4] auto QMultiHash::asKeyValueRange() const &&

このハッシュをキーと値のペアで反復処理できる範囲オブジェクトを返します。例えば、この範囲オブジェクトは、構造化バインディング宣言と組み合わせて、範囲ベースのforループで使用することができます:

QMultiHash<QString, int> hash;
hash.insert("January", 1);
hash.insert("February", 2);
// ...
hash.insert("December", 12);

for (auto [key, value] : hash.asKeyValueRange()) {
    cout << qPrintable(key) << ": " << value << endl;
    --value; // convert to JS month indexing
}

このようにして得られるキーと値は、どちらもハッシュ内のものへの参照であることに注意してください。具体的には、値を変更するとハッシュ自体が変更されます。

警告 返されたイテレータや参照は、次にハッシュに対してconstでない関数を呼び出したとき、またはハッシュが破棄されたときに無効になると考えてください。

この関数はQt 6.4で導入されました。

QKeyValueIteratorも参照して ください。

[noexcept] QMultiHash::QMultiHash()

空のハッシュを構築する。

[explicit] QMultiHash::QMultiHash(const QHash<Key, T> &other)

other (QHash または QMultiHash) のコピーを構築します。

QMultiHash::QMultiHash(std::initializer_list<std::pair<Key, T>> list)

イニシャライザーリストlist の各要素のコピーでマルチハッシュを構築する。

template <typename InputIterator> QMultiHash::QMultiHash(InputIterator begin, InputIterator end)

イテレータ範囲 [begin,end] 内の各要素のコピーでマルチハッシュを構築します。範囲によって反復される要素は、firstsecond のデータ・メンバを持つオブジェクト(std::pair のように、それぞれKeyT に変換可能)でなければなりません。あるいは、反復子はkey()value() のメンバ関数を持ち、それぞれKey に変換可能なキーとT に変換可能な値を返さなければなりません。

QMultiHash<Key, T>::iterator QMultiHash::begin()

ハッシュの最初の項目を指すSTL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出すか、ハッシュが破棄された時点で無効となることを考慮する必要があります。

constBegin() およびend()も参照

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::begin() const

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

警告 返されたイテレータや参照は、次にそのハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効化されると考えるべきです。

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::cbegin() const

ハッシュの最初の項目を指す、STL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対して const でない関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

begin() およびcend()も参照

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::cend() const

ハッシュの最後の項目の後にある架空の項目を指す、STL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対してconstでない関数を呼び出したとき、またはハッシュが破棄されたときに無効になると考えるべきです。

cbegin() およびend()も参照のこと

[noexcept(...)] void QMultiHash::clear()

ハッシュからすべての項目を削除し、ハッシュが使用していたすべてのメモリを解放する。

注意: std::is_nothrow_destructible<Node>::valuetrue のとき、この関数は noexcept となる。

remove()も参照のこと

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constBegin() const

ハッシュの最初の項目を指す、STL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対して const でない関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

begin() およびconstEnd()も参照

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constEnd() const

ハッシュの最後の項目の後にある架空の項目を指す、STL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対してconstでない関数を呼び出したとき、またはハッシュが破棄されたときに無効になると考えるべきです。

constBegin() およびend()も参照のこと

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constFind(const Key &key, const T &value) const

ハッシュ内のkeyvalue を持つ項目を指すイテレータを返す。

ハッシュにそのような項目がない場合、この関数はconstEnd() を返します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、またはハッシュが破棄されたときに無効となります。

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::constKeyValueBegin() const

ハッシュの最初のエントリを指す、STL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にそのハッシュに対して const でない関数をコールしたとき、あるいはハッシュが破棄されたときに無効となります。

keyValueBegin()も参照

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::constKeyValueEnd() const

ハッシュの最後のエントリの後の架空のエントリを指すSTL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して const でない関数をコールしたとき、 あるいはハッシュが破棄されたときに無効となります。

constKeyValueBegin()も参照

[noexcept] bool QMultiHash::contains(const Key &key, const T &value) const

ハッシュにkeyvalue の項目が含まれていればtrue を返し、そうでなければfalse を返す。

contains()も参照

[noexcept] qsizetype QMultiHash::count(const Key &key, const T &value) const

key およびvalue を持つ項目の数を返します。

count()も参照 ください。

[noexcept] QMultiHash<Key, T>::iterator QMultiHash::end()

ハッシュの最後の項目の後にある架空の項目を指すSTL 形式のイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

begin() およびconstEnd()も参照のこと

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::end() const

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

std::pair<QMultiHash<Key, T>::iterator, QMultiHash<Key, T>::iterator> QMultiHash::equal_range(const Key &key)

key の下に格納されている値[first, second) の範囲を区切るイテレータのペアを返す。範囲が空の場合、両方のイテレータはend() に等しくなります。

警告: 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出すか、ハッシュが破棄されたときに無効となります。

[noexcept] std::pair<QMultiHash<Key, T>::const_iterator, QMultiHash<Key, T>::const_iterator> QMultiHash::equal_range(const Key &key) const

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

警告 返されたイテレータや参照は、次にそのハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効化されると考えるべきです。

QMultiHash<Key, T>::iterator QMultiHash::find(const Key &key, const T &value)

key valueハッシュにそのような項目がない場合、この関数はend() を返す。

ハッシュにkeyvalue を持つ複数の項目が含まれる場合、返されるイテレータは最近挿入された項目を指します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、またはハッシュが破棄されたときには無効になっていると考えるべきです。

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::find(const Key &key, const T &value) const

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

警告 返されたイテレータや参照は、次にそのハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効化されると考えるべきです。

QMultiHash<Key, T>::iterator QMultiHash::insert(const Key &key, const T &value)

key と値value を持つ新しい項目を挿入する。

ハッシュ内に同じキーを持つ項目が既に存在する場合、この関数は単に新しい項目を作成します (この動作は、既存の項目の値を上書きする () とは異なります)。(この動作は、既存の項目の値を上書きするreplace() とは異なります)。

新しい要素を指すイテレータを返します。

警告: 警告: 返されたイテレータや参照は、次にハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

replace()も参照

[noexcept] QMultiHash<Key, T>::key_iterator QMultiHash::keyBegin() const

ハッシュの最初のキーを指す、STL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して const でない関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

keyEnd()も参照

[noexcept] QMultiHash<Key, T>::key_iterator QMultiHash::keyEnd() const

ハッシュの最後のキーに続く架空の項目を指す、STL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して const でない関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

keyBegin()も参照

[noexcept] QMultiHash<Key, T>::key_value_iterator QMultiHash::keyValueBegin()

ハッシュの最初のエントリを指すSTL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して非定数関数を呼び出したとき、あるいはハッシュが破棄されたときに無効となります。

keyValueEnd()も参照

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::keyValueBegin() const

ハッシュの最初のエントリを指す、STL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にそのハッシュに対して const でない関数をコールしたとき、あるいはハッシュが破棄されたときに無効となります。

keyValueEnd()も参照

[noexcept] QMultiHash<Key, T>::key_value_iterator QMultiHash::keyValueEnd()

ハッシュの最後のエントリの後の架空のエントリを指すSTL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して const でない関数を呼び出したとき、 あるいはハッシュが破棄されたときに無効となります。

keyValueBegin()も参照

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::keyValueEnd() const

ハッシュの最後のエントリの後の架空のエントリを指す、STL 形式のイテレータを返します。

警告 返されたイテレータや参照は、次にハッシュに対して const でない関数をコールしたとき、 あるいはハッシュが破棄されたときに無効となります。

keyValueBegin()も参照

QList<Key> QMultiHash::keys() const

ハッシュ内のすべてのキーを含むリストを、任意の順番で返します。ハッシュ内で複数回出現するキーは、リスト内でも複数回出現します。

この順番は、values() で使用される順番と同じであることが保証される。

この関数は、線形時間で新しいリストを作成する。keyBegin() からkeyEnd() を繰り返し実行することで、時間とメモリの浪費を避けることができる。

values() およびkey()も参照の こと。

qsizetype QMultiHash::remove(const Key &key)

ハッシュからkey を持つすべての項目を削除します。削除した項目の数を返します。

remove()も参照 ください。

qsizetype QMultiHash::remove(const Key &key, const T &value)

ハッシュからkey と値value を持つすべての項目を削除します。削除された項目の数を返します。

remove()も参照

[since 6.1] template <typename Predicate> qsizetype QMultiHash::removeIf(Predicate pred)

述語pred が真を返す全ての要素をマルチハッシュから削除する。

この関数は、QMultiHash<Key, T>::iterator 型の引数か、std::pair<const Key &, T &> 型の引数を取る述語をサポートします。

もしあれば、削除された要素の数を返します。

この関数はQt 6.1で導入されました。

clear() とtake()も参照してください

QMultiHash<Key, T>::iterator QMultiHash::replace(const Key &key, const T &value)

key と値value を持つ新しい項目を挿入する。

すでにkey を持つ項目がある場合、その項目の値はvalue に置き換えられる。

key を持つ項目が複数ある場合、最後に挿入された項目の値がvalue に置換されます。

新しい/更新された要素を指すイテレータを返します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、またはハッシュが破棄されたときには無効になっていると考えるべきです。

insert()も参照のこと

[noexcept] void QMultiHash::swap(QMultiHash<Key, T> &other)

このマルチハッシュをother と交換する。この操作は非常に高速で、失敗することはない。

T QMultiHash::take(const Key &key)

ハッシュからkey の項目を削除し、その項目に関連付けられた値を返します。

その項目がハッシュ内に存在しない場合、この関数は単にデフォルトの値を返します。ハッシュ内にkey の項目が複数ある場合は、最近挿入されたものだけが削除されます。

戻り値を使用しない場合は、remove() の方が効率的です。

remove()も参照のこと

QList<Key> QMultiHash::uniqueKeys() const

マップ内のすべてのキーを含むリストを返す。マップ内で複数回出現するキーは、返されるリスト内で一度だけ出現します。

keys() およびvalues()も参照

[since 6.0] QMultiHash<Key, T> &QMultiHash::unite(const QHash<Key, T> &other)

other ハッシュ内のすべての項目をこのハッシュに挿入し、このハッシュへの参照を返します。

この関数は Qt 6.0 で導入されました。

insert()も参照してください

QMultiHash<Key, T> &QMultiHash::unite(const QMultiHash<Key, T> &other)

other ハッシュのすべての項目をこのハッシュに挿入し、このハッシュへの参照を返します。

insert()も参照

QList<T> QMultiHash::values() const

ハッシュ内のすべての値を任意の順番で含むリストを返します。キーが複数の値に関連付けられている場合は、 最近挿入された値だけでなくすべての値がリストに含まれることになります。

この順序は、keys() で使用される順序と同じであることが保証される。

この関数は、線形時間で新しいリストを作成する。keyValueBegin() からkeyValueEnd() を繰り返し実行することで、時間とメモリの浪費を避けることができる。

keys() およびvalue()も参照の こと。

QList<T> QMultiHash::values(const Key &key) const

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

最近挿入されたものから最近挿入されなかったものまで、key に関連付けられたすべての値のリストを返す。

count() およびinsert()も参照

QMultiHash<Key, T> QMultiHash::operator+(const QMultiHash<Key, T> &other) const

other のすべての項目に加え、このハッシュのすべての項目を含むハッシュを返します。 キーが両方のハッシュに共通の場合、結果のハッシュにはそのキーが複数回含まれます。

operator+=()も参照

QMultiHash<Key, T> &QMultiHash::operator+=(const QMultiHash<Key, T> &other)

other ハッシュのすべての項目をこのハッシュに挿入し、このハッシュへの参照を返す。

unite() およびinsert()も参照

T &QMultiHash::operator[](const Key &key)

key に関連付けられた値を変更可能な参照として返す。

ハッシュにkey を持つ項目がない場合、この関数はデフォルトで構成された値を key を持つハッシュに挿入し、その参照を返します。

ハッシュにkey を持つ複数の項目が含まれる場合、この関数は最も最近挿入された値への参照を返します。

警告 返されたイテレータ/参照は、次にハッシュに対して非定数関数を呼び出したとき、またはハッシュが破棄されたときに無効化されると考えるべきである。

insert() およびvalue()も参照

関連する非メンバー

[since 6.1] template <typename Key, typename T, typename Predicate> qsizetype erase_if(QMultiHash<Key, T> &hash, Predicate pred)

マルチハッシュhash から、述語pred が真を返すすべての要素を削除する。

この関数は、QMultiHash<Key, T>::iterator 型の引数か、std::pair<const Key &, T &> 型の引数を取る述語をサポートします。

もしあれば、削除された要素の数を返します。

この関数はQt 6.1で導入されました。

[noexcept(...)] template <typename Key, typename T> size_t qHash(const QMultiHash<Key, T> &key, size_t seed = 0)

seed を計算の種として、key のハッシュ値を返す。

Key およびT は qHash() でサポートされていなければならない。

注: noexcept(qHash(std::declval<Key&>())) && noexcept(qHash(std::declval<T&>()))true の場合、この関数は noexcept となる。

template <typename Key, typename T> QDataStream &operator<<(QDataStream &out, const QMultiHash<Key, T> &hash)

ハッシュhash をストリームout に書き込む。

この関数は、キー型と値型を実装する必要がありますoperator<<()

Qt データ型のシリアライズ」も参照してください

template <typename Key, typename T> QDataStream &operator>>(QDataStream &in, QMultiHash<Key, T> &hash)

ストリームin からハッシュをhash に読み込む。

この関数は、operator>>() を実装するためのキーと値の型を必要とします。

Qt データ型のシリアライズ」も参照してください

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.