CMap クラス
更新 : 2007 年 11 月
一意なキーを値に割り当てる辞書コレクション クラスです。
template< class KEY, class ARG_KEY, class VALUE, class ARG_VALUE >class CMap : public CObject
パラメータ
KEY
マップのキーとして使うオブジェクトのクラス。ARG*_*KEY
KEY 引数として使うデータ型。通常、KEY への参照です。VALUE
マップに格納されるオブジェクトのクラス。ARG*_*VALUE
VALUE 引数として使うデータ型。通常、VALUE への参照です。
解説
マップにキーと値のペア (要素) を挿入すると、キーを使って効果的にペアにアクセスし、ペアを取得または削除できます。マップ内のすべての要素を順番に取得または削除することもできます。
キーを使わずにエントリにアクセスするには、POSITION 型の変数を使います。この POSITION 型の変数を使うと、エントリを "記憶" できるので、マップに順次アクセスできます。この順次アクセスは、キーの値の順序で行われるわけではありません。要素を取得する順序は不確定です。
このクラスの一部のメンバ関数は、グローバルなヘルパ関数を呼び出します。したがって、CMap クラスの主な用途に合わせて、これらのヘルパ関数をカスタマイズする必要があります。『MFCReference』の「MFC マクロとグローバル」にある「コレクション クラスのヘルパ」を参照してください。
CMap は、シリアル化および配列要素のダンプをサポートするために CObject::Serialize をオーバーライドします。Serialize を使用してマップをアーカイブに格納する場合、各マップ要素は順次シリアル化されます。ヘルパ関数 SerializeElements の既定の実装では、ビットごとに書き込みします。CObject またはその他のユーザー定義の型から派生したポインタ コレクション項目のシリアル化については、「方法 : タイプ セーフなコレクションを作成する」を参照してください。
マップの各要素 (キーと値) を診断用にダンプするときは、ダンプ コンテキストの深さの引数を 1 以上に設定します。
CMap オブジェクトを削除するか、要素を削除すると、キーと値の両方が削除されます。
マップ クラスの派生は、リスト クラスの派生と同じです。リスト クラスごとの派生方法については、「コレクション クラス」を参照してください。
必要条件
ヘッダー : afxtempl.h
参照
処理手順
COLLECT サンプル : MFC コレクション クラスの例