CTypedPtrMap クラス
ポインター マップ クラス CMapPtrToPtr
、 CMapPtrToWord
、 CMapWordToPtr
、および CMapStringToPtr
のオブジェクトに対してタイプ セーフな "ラップ" が用意されています。
構文
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
パラメーター
BASE_CLASS
型指定されたポインター マップ クラスの基底クラス。は、ポインター マップ クラス ( CMapPtrToPtr
、 CMapPtrToWord
、 CMapWordToPtr
、または 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 クラス