ベクトルのマップやセットのマップを作成できるのであれば、なぜマルチマップが存在するのか分かりません。 は私にとって唯一の相違点は次のとおりです。キーの要素を取得するために、我々は単に[]
演算子を使用して、要素のベクトルを持つベクトルのマップにマルチマップでequal_range
を使用してマルチマップとベクトルマップの利点は何ですか?
- 。
- 要素を追加するためにマルチマップで
multimap.insert(make_pair(key,value))
を使用し、ベクトルのマップにmap_of_vectors[key].push_back(value)
を使用してください。
なぜマルチマップを使用するのですか?私にとっては、キーのすべての値を取得するために2つのイテレータよりもベクトルを持つほうがよいです。
この質問は、ベクトルとunordered_multimapのunordered_mapにも適用されます。
私は 'multimap'の目的をあまり理解していないことを認めなければなりません:/ –
少し遅れてしまいますが、マルチマップは余分なポインタのためにベクトルのマップよりもはるかに多くのメモリを消費します。私がそれらを使用する唯一の理由は、各要素のキーを保持したい場合です。(push_backを実行すると、それを保持しません) – Jcao02
異なる値の重複キーを追跡したいだけでなく、瞬間の通知でキー/値のペアを削除したい場合もあります。ベクトルのマップはそれには適していません。リストのマップを使用することはできますが、マルチマップを使用する方が便利です。 – richizy