logo

C++ マップ関数

マップは C++ STL (標準テンプレート ライブラリ) の一部です。マップは、ソートされたキーと値のペアを格納する連想コンテナーであり、各キーは一意であり、挿入または削除はできますが、変更はできません。キーに関連付けられた値は変更できます。

例えば: 従業員 ID がキー、名前が値である従業員のマップは次のように表すことができます。

キー 価値観
101 ニキータ
102 ロビン
103 深い
104 ジョン

構文

 template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator&lt;pair"> // map::allocator_type &gt; class map; </class>

パラメータ

鍵: マップに保存されるキーのデータ型。

タイプ: マップに格納される値のデータ型。

比較する: 同じ bool 型の 2 つの引数を受け取り、値を返す比較クラス。この引数はオプションであり、バイナリ述語lessがデフォルト値です。

割り当て: アロケータ オブジェクトのタイプ。この引数はオプションであり、デフォルト値は allocator です。

マップの作成

マップは次のステートメントを使用して簡単に作成できます。

 typedef pair value_type; 

上記のフォームは、次のタイプのキーを持つマップを作成するために使用します。 キーの種類 と型の値 値のタイプ。 重要なことの 1 つは、マップのキーと対応する値は常にペアとして挿入され、マップにキーのみまたは値のみを挿入することはできないということです。

例1

 #include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } } 

出力:

 Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita 

メンバー関数

以下は、map のすべてのメンバー関数のリストです。

ビルダー/デストロイヤー

機能 説明
コンストラクター マップの構築
駆逐艦 マップデストラクター
演算子= マップの要素を別のマップにコピーします。

イテレータ

機能 説明
始める マップ内の最初の要素を指すイテレータを返します。
始める マップ内の最初の要素を指す const イテレータを返します。
終わり 過去の終端を指すイテレータを返します。
いくつかの 過去の終端を指す定数反復子を返します。
始める 最後を指す逆反復子を返します。
作る 先頭を指す逆反復子を返します。
始めます 最後を指す定数逆反復子を返します。
信じる 先頭を指す定数逆反復子を返します。

容量

機能 説明
空の マップが空の場合は true を返します。
サイズ マップ内の要素の数を返します。
max_size マップの最大サイズを返します。

要素へのアクセス

機能 説明
オペレーター[] 指定されたキーを持つ要素を取得します。
指定されたキーを持つ要素を取得します。

修飾子

機能 説明
入れる マップに要素を挿入します。
消す マップから要素を消去します。
スワップ マップのコンテンツを交換します。
クリア マップのすべての要素を削除します。
位置 新しい要素を作成してマップに挿入します。
埋め込みヒント ヒントによって新しい要素を構築し、マップに挿入します。

オブザーバー

機能 説明
キーコンプ キー比較オブジェクトのコピーを返します。
値の補償 値比較オブジェクトのコピーを返します。

オペレーション

機能 説明
探す 指定されたキーを持つ要素を検索します。
カウント 指定されたキーに一致する要素の数を取得します。
下限 反復子を下限に返します。
上界 イテレータを上限に返します。
等しい範囲 指定されたキーと一致する要素の範囲を返します。

アロケータ

機能 説明
get_allocator マップの構築に使用されるアロケーター オブジェクトを返します。

非メンバーのオーバーロードされた関数

機能 説明
演算子== 2 つのマップが等しいかどうかを確認します。
演算子!= 2 つのマップが等しいかどうかを確認します。
演算子< 最初のマップが他のマップよりも小さいかどうかを確認します。
オペレーター<=< td> 最初のマップが他のマップ以下であるかどうかを確認します。
オペレータ> 最初のマップが他のマップよりも大きいかどうかを確認します。
演算子>= 最初のマップが他のマップより大きいかどうかを確認します。
スワップ() 2 つのマップの要素を交換します。