Share via


CTypedPtrMap クラス

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

構文

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

パラメーター

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

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

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

メンバー

パブリック メソッド

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

パブリック演算子

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

解説

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

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

使用CTypedPtrMapの詳細については、コレクションとテンプレート ベースのクラスに関する記事を参照してください。

継承階層

BASE_CLASS

CTypedPtrMap

必要条件

ヘッダー: afxtempl.h

CTypedPtrMap::GetNextAssoc

map 要素 rNextPositionを取得し、更新 rNextPosition してマップ内の次の要素を参照します。

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

パラメーター

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

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

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

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

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

解説

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

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

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

CTypedPtrMap::Lookup

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

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

パラメーター

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

key
検索する要素のキー。

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

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

戻り値

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

解説

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

CTypedPtrMap::operator [ ]

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

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

パラメーター

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

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

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

解説

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

CTypedPtrMap::RemoveKey

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

BOOL RemoveKey(KEY key);

パラメーター

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

key
削除する要素のキー。

戻り値

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

解説

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

CTypedPtrMap::SetAt

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

void SetAt(KEY key, VALUE newValue);

パラメーター

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

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

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

解説

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

関連項目

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