map
とmultimap
はユニークな要素を格納する連想コンテナの一種であり、キーとそれに対応する値を格納する。
map
はキーの重複を許さず、multimap
はキーの重複を許す。
連想コンテナは特にそれらキーによる要素アクセスが効率的になるようよう設計されたコンテナである(要素への相対位置または絶対位置によるアクセスが効率的であるシーケンシャルコンテナとは異なる)。
内部的には、map
内の要素は、コンテナの構築時に設定された狭義の弱順序基準に従って小さいものから大きいものへとソートされる。
map
とmultimap
は一般的に、二分木として実装される。従って、連想コンテナである map
やmultimap
の主な特性は以下の通りである。
- ユニークな要素のキー:互いに等しい二つのキーを持つ要素が
map
に格納されることは無い。複数の等しいキーを許す同様の連想コンテナはmultimap
である。 - 要素の値はキーと値のpair型である。
- 要素は常に狭義の弱順序に従う。
- 挿入操作はイテレータや要素の参照に影響を与えない。
このコンテナクラスは、双方向イテレータをサポートする。
このヘッダでは、以下の標準ヘッダをインクルードする:
<initializer_list>
(C++11)<compare>
(C++20)
名前 | 説明 | 対応バージョン |
---|---|---|
map |
キーの重複を許さない連想コンテナ(class template) | |
multimap |
キーの重複を許す連想コンテナ(class template) |