map Class
各要素がデータ値と並べ替えキーの両方を持つペアであるコレクションからデータを格納および取得するために使用します。キー値は一意で、自動的にデータの並べ替えに使用されます。
マップ要素の値を直接変更できます。キー値は定数で、変更できません。代わりに、古い要素に関連付けられているキー値は削除する新しいキー値が新しい要素に挿入する必要があります。
template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class map
パラメーター
Key
マップに格納される主要なデータ型。Type
マップに格納される要素のデータ型。Traits
マップの相対位置ディレクティブを確認するには、並べ替えキーとして 2 要素の値を比較できる関数オブジェクトを提供する型。このオプションを省略すると、バイナリ述語 less<Key> が既定値です。Allocator
マップのメモリの割り当てと解放に関する詳細をカプセル化する、格納されたアロケーター オブジェクトを表す型。このオプションを省略すると、既定値は allocator<pair<constKey*、*Type> >です。
解説
標準テンプレート ライブラリの (STL) マップのクラスは次のとおりです:
効率的に要素の値を取得する可変サイズのコンテナーは、関連するキー値に基づいて。
要素にアクセスするには、双方向反復子を提供するため、実行する。
要素が指定した比較関数に従ってキー値に基づいて並べるため、並べ替えられる。
一意。要素に一意キーが必要であるため。
要素のデータ値がとは異なるキー値であるため、ペア連想コンテナー。
用意されている機能とテンプレート クラスは、要素またはキーの型のジェネリックの場合、は依存しません。要素とキーに使用するデータ型は比較関数およびアロケーターとクラス テンプレートでパラメーターとして指定されます。
マップのクラスによって提供された反復子は、双方向反復子ですが、挿入 と マップ クラスのメンバー関数にテンプレート パラメーターとして機能の要件が双方向の反復子クラスによって保証されているよりも少ないである、弱い入力反復子を受け取るバージョンがあります。さまざまな反復子の概念は、機能の調整に関連付けられます。各反復子の概念に条件の独自のセットがあり、オブジェクトを使用するアルゴリズムはこれらの条件によって限られなければ必要があります。入力反復子は、オブジェクトを表示する逆参照され、シーケンスの次の反復子に増加する可能性があります。
これは、一種の検索にコンテナー型の基の選択、挿入アプリケーションが要求することをお勧めします。連想コンテナーは、検索、挿入、削除操作のために最適化されています。メンバー関数と関数はコンテナー要素の数値の対数に比例的な手段にあるときに明示的に処理を実行するコントロールをサポートする。要素を挿入する反復子を無効にしない要素を削除し、削除された要素に特化した指す反復子だけが無効になります。
これはキーと値を関連付ける条件がアプリケーションによって満たされる場合のオプションを連想コンテナーにマップすることをお勧めします。この種類の構造の定義は、モデルを提供する文字列値を関連付けた一意キーに含まれる単語の順序付きリストです。正しい単語に複数の定義がある場合、キーが一意でないように、map は、選択コンテナーです。Word のリストだけが設定されている場合は、適切なコンテナーです。Word の複数の出現が許可されると、複数のセットが適切です。
マップは、型の key_compare格納されているオブジェクトの関数を呼び出して制御する要素を並べ替えます。この key_comp は、格納されているオブジェクトのメソッドを呼び出すことによってアクセス比較関数です。一般に、2 種類の特定の要素を比較して、一方が他方より小さいか、あるいは等しいかを判断します。すべての要素を比較すると、不一致の要素の順序付けられたシーケンスが作成されます。
[!メモ]
比較関数は、標準的な演算はの厳密弱順序を引き起こすバイナリ述語です。バイナリ f(x,y) 述語は 2 個の引数オブジェクト x と y場合は true または falseの戻り値は関数オブジェクト。セットに適用される順序は f(x,y)両方と f(y,x) が falseとの 2 種類のオブジェクト x と y が等価であると定義されます。に厳密な厳密なバイナリ述語が irreflexive 称、オブジェクト、および中間かどうか、および Orders 等価性が中間の場合は。(すべての要素が 1 以外に関して並べるという意味で) の等価性、および命令について、一致するキーになるキーの置換の間の等価より強力な状態が 1 の他 indiscernible からです。
メンバー
コンストラクター
特定のサイズまたは特定の値の要素または特定の allocator とそのほかのマップのコピーとしてリストを構築します。 |
Typedef
マップ オブジェクトの allocator のクラスの typedef。 |
|
マップの const の要素を読み取ることができる双方向反復子の typedef。 |
|
マップの const の要素へのポインターの typedef。 |
|
const 操作を読み取りと操作実行のためにマップに格納されている const の要素への参照の typedef。 |
|
マップの const の要素を読み取ることができる双方向反復子を提供する型。 |
|
要素間の範囲のマップ要素の数の符号付き整数の typedef は、反復子が指す。 |
|
読み取り可能であり、マップ要素を変更する双方向反復子の typedef。 |
|
マップ内の要素は 2 個の相対位置を決定するディレクティブには、2 とおりの並べ替えキーを比較できる関数のオブジェクトの typedef。 |
|
マップ内の各要素に格納されている並べ替えキーの typedef。 |
|
マップ内の各要素に格納されるデータの typedef。 |
|
マップの const の要素へのポインターの typedef。 |
|
マップに格納されている要素への参照の typedef。 |
|
読み取り可能であり、逆順のマップ要素を変更する双方向反復子の typedef。 |
|
マップ要素の数の符号なし整数の typedef |
|
マップ内の要素として格納されるオブジェクトの型の typedef。 |
メソッド
指定されたキー値を持つ要素を検索します。 |
|
マップ内の最初の要素を指す反復子を返します。 |
|
マップ内の最初の要素を指す定数反復子を返します。 |
|
定数末尾超え反復子を返します。 |
|
マップのすべての要素を消去します。 |
|
キーがパラメーターで指定したキーに一致するマップ内の要素数を返します。 |
|
逆順のマップの最初の要素を指す定数反復子を返します。 |
|
位置に逆マップされた後の最後の要素をポイントした定数反復子を返します。 |
|
マップに構築された要素を挿入します。 |
|
配置ヒントを含むマップに、構築された要素を挿入します。 |
|
マップが空の場合 true を返します。 |
|
末尾超え反復子を返します。 |
|
ペアの反復子を返します。指定したキー、キーの map の最初の要素へのペアの点の最初の反復子。それより大きいキーまたはキーの map の最初の要素へのペアの点の 2 番目の反復子。 |
|
指定した位置からマップの要素または要素範囲を削除します。 |
|
指定したキーと同じキーがマップにある要素の位置を指す反復子を返します。 |
|
マップを構築する allocator オブジェクトのコピーを返します。 |
|
指定した位置のマップに要素または要素範囲を挿入します。 |
|
マップのキー順の並べ替えに使用した比較オブジェクトのコピーを返します。 |
|
その以内で指定されたキーよりも大きい値を持つキー マップに最初の要素への反復子を返します。 |
|
マップの最大長を返します。 |
|
逆順のマップの最初の要素を指す反復子を返します。 |
|
位置に逆マップされた後の最後の要素をポイントした反復子を返します。 |
|
マップ内の要素数を返します。 |
|
2 種類のマップ要素を交換します。 |
|
指定したキーよりも大きい値を持つキー マップに最初の要素への反復子を返します。 |
|
マップ要素の値を並べ替えるために使用する比較のオブジェクトのコピーを取得します。 |
演算子
指定したキー値をにしてマップに要素を挿入します。 |
|
別のマップのコピーとマップ内の要素を置き換えます。 |
必要条件
ヘッダー: <map>
名前空間: std