次の方法で共有


CTypedPtrMap クラス

ポインター マップ クラス CMapPtrToPtrCMapPtrToWordCMapWordToPtr、および CMapStringToPtrのオブジェクトに対してタイプ セーフな "ラップ" が用意されています。

構文

template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS

パラメーター

BASE_CLASS
型指定されたポインター マップ クラスの基底クラス。は、ポインター マップ クラス ( CMapPtrToPtrCMapPtrToWordCMapWordToPtr、または CMapStringToPtr) である必要があります。

KEY
マップのキーとして使用されるオブジェクトのクラス。

VALUE
マップに格納されているオブジェクトのクラス。

メンバー

パブリック メソッド

名前 説明
CTypedPtrMap::GetNextAssoc 次に反復処理の対象となる要素が取得されます。
CTypedPtrMap::Lookup VALUEに基づいてKEYを返します。
CTypedPtrMap::RemoveKey キーで指定された要素を削除します。
CTypedPtrMap::SetAt マップに要素を挿入します。は、一致するキーが見つかった場合に既存の要素を置き換えます。

パブリック演算子

名前 説明
CTypedPtrMap::operator [ ] マップに要素を挿入します。

解説

CTypedPtrMapを使用する場合、C++ 型チェック機能は、ポインター型の不一致によって発生するエラーを排除するのに役立ちます。

すべての CTypedPtrMap 関数はインラインであるため、このテンプレートを使用してもコードのサイズや速度に大きな影響はありません。

CTypedPtrMapの使用方法の詳細については、Collections および Template ベースのクラスに関する記事を参照してください。

継承階層

BASE_CLASS

CTypedPtrMap

要件

ヘッダー: afxtempl.h

CTypedPtrMap::GetNextAssoc

rNextPositionで map 要素を取得し、マップ内の次の要素を参照するようにrNextPosition更新します。

void GetNextAssoc(
    POSITION& rPosition,
    KEY& rKey,
    VALUE& rValue) const;

パラメーター

rPosition
前の GetNextAssoc または BASE_CLASS::GetStartPosition 呼び出しによって返される POSITION 値への参照を指定します。

KEY
マップのキーの種類を指定するテンプレート パラメーター。

rKey
取得した要素の返されるキーを指定します。

VALUE
マップの値の型を指定するテンプレート パラメーター。

rValue
取得した要素の戻り値を指定します。

解説

この関数は、マップ内のすべての要素を反復処理する場合に最も便利です。 位置シーケンスは必ずしもキー値シーケンスと同じではないことに注意してください。

取得した要素がマップの最後の要素である場合、 rNextPosition の新しい値は NULL に設定されます。

このインライン関数は、 BASE_CLASS::GetNextAssoc を呼び出します。

CTypedPtrMap::Lookup

Lookup では、ハッシュ アルゴリズムを使用して、正確に一致するキーを持つマップ要素をすばやく検索します。

BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;

パラメーター

BASE_CLASS
このマップのクラスの基底クラスを指定するテンプレート パラメーター。

キー
検索する要素のキー。

VALUE
このマップに格納されている値の種類を指定するテンプレート パラメーター。

rValue
取得した要素の戻り値を指定します。

戻り値

要素が見つかった場合は 0 以外。それ以外の場合は 0。

解説

このインライン関数は、 BASE_CLASS::Lookup を呼び出します。

CTypedPtrMap::operator [ ]

この演算子は、代入ステートメント (l 値) の左側でのみ使用できます。

VALUE& operator[ ](base_class ::base_arg_key key);

パラメーター

VALUE
このマップに格納されている値の種類を指定するテンプレート パラメーター。

BASE_CLASS
このマップのクラスの基底クラスを指定するテンプレート パラメーター。

キー
マップ内で検索または作成される要素のキー。

解説

指定したキーを持つ map 要素がない場合は、新しい要素が作成されます。 マップにキーが見つからない可能性があるため、この演算子と同等の "右側" (r 値) はありません。 要素の取得には、 Lookup メンバー関数を使用します。

CTypedPtrMap::RemoveKey

このメンバー関数は、 BASE_CLASS::RemoveKey を呼び出します。

BOOL RemoveKey(KEY key);

パラメーター

KEY
マップのキーの種類を指定するテンプレート パラメーター。

キー
削除する要素のキー。

戻り値

エントリが見つかり、正常に削除された場合は 0 以外。それ以外の場合は 0。

解説

詳細については、「 CMapStringToOb::RemoveKeyを参照してください。

CTypedPtrMap::SetAt

このメンバー関数は、 BASE_CLASS::SetAt を呼び出します。

void SetAt(KEY key, VALUE newValue);

パラメーター

KEY
マップのキーの種類を指定するテンプレート パラメーター。

キー
newValue のキー値を指定します。

newValue
新しい要素の値であるオブジェクト ポインターを指定します。

解説

詳細については、「 CMapStringToOb::SetAt」を参照してください。

関連項目

MFC サンプル COLLECT
階層図
CMapPtrToPtr クラス
CMapPtrToWord クラス
CMapWordToPtr クラス
CMapStringToPtr クラス