複数の同一のキーの格納をサポートしていることです。新たにキーと値のペアを追加するとき、新しいペアによって古いペアが置き換えられます。コンテナに新しいペアと古いペアの両方が格納されます。キーと値のペアが個別のオブジェクトであるかのように、各ペアがマップの要素の型として扱われます。このドキュメントでは、「要素」とはキーと値のペアを指し、個々のコンポーネントは、「要素のキー」または「要素の値」と呼びます。型を直接言及する必要があることはほとんどありません。要素はすべて、厳密に同じ型です。値型でもあり、通常のコピー、代入、デストラクタの操作をサポートしています。要素の強力な所有権をサポートしているため、マップが破棄されたら値も破棄されます。提供する必要があります。ハッシュについては、後で詳しく説明します。オプションでアロケータを受け取って、メモリ割り当て動作を制御することもできます。アロケータがあります。アロケータを定義します。つのキーが同一かどうかを比較する方法、およびキーをハッシュする方法を指示します。これらにはデフォルト設定があります。キーとして使用できます。(安定していません)。要素を繰り返し処理すると、要素を追加した順序とは異なる順序で要素が返される可能性があります。要素がメモリ内で隣り合うように配置されない可能性もあります。データ構造はスパース行列です。これは、要素間のギャップを効果的にサポートする配列です。マップから要素が削除されると、スパース行列にギャップが発生します。新しい要素を配列に追加することで、そのギャップを埋めることができます。ギャップを埋めるために要素をシャッフルしませんが、マップ要素へのポインタは引き続き無効化されている場合があります。ストレージがいっぱいのときに新しい要素を追加する場合、ストレージ全体が再割り当てされることがあるからです。次のように作成できます。使用してハッシュします。この時点で、メモリは割り当てられません。]ここで要素は挿入順にリストされていますが、この順番がメモリ内の実際の順番である保証はありません。ないので、キーは一意であると保証されています。以下に、重複するキーを追加しようとした結果を示します。置き換えられています。関数は、値が指定されていないキーを受け取ることもできます。コンストラクタの動作に従います。使用することができます。]ここでは、キーと値がそれぞれの型のコンストラクタに直接渡されています。作成されないようにしています。つのコンストラクタでのみ要素をマップに配置可能です。つのマップをマージすることもできます。マージすると、一方のマップの要素がすべてもう一方のマップに移動します。空にしたものと同一です。要素と同一の要素は置き換えられます。