CMapStringToOb::SetAt
更新 : 2007 年 11 月
マップに要素を挿入することが第 1 の目的です。
void SetAt(
LPCTSTR key,
CObject* newValue
);
パラメータ
key
新しい要素のキーになる文字列を指定します。newValue
新しい要素の値となる CObject へのポインタを指定します。
解説
まず、キーを検索します。キーが見つかったときは対応する値を変更します。見つからなかったときは、新しいキーと値で要素を作ります。
CMapStringToOb::SetAt に類似している他のメンバ関数を以下に示します。
クラス |
メンバ関数 |
---|---|
void SetAt( void*key, void*newValue ); |
|
void SetAt( void*key, WORDnewValue ); |
|
void SetAt( LPCTSTRkey, void*newValue ); |
|
void SetAt( LPCTSTRkey, LPCTSTRnewValue ); |
|
void SetAt( WORDkey, CObject*newValue ); |
|
void SetAt( WORDkey, void*newValue ); |
使用例
すべてのコレクションの例で使われている CAge クラスのリストについては、CObList::CObList を参照してください。
CMapStringToOb map;
CAge* pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11)); // Map contains 2
// elements.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("before Lisa's birthday: ") << &map << _T("\n");
#endif
if (map.Lookup(_T("Lisa"), (CObject *&)pa))
{ // CAge 12 pointer replaces CAge 11 pointer.
map.SetAt(_T("Lisa"), new CAge(12));
delete pa; // Must delete CAge 11 to avoid memory leak.
}
#ifdef _DEBUG
afxDump << _T("after Lisa's birthday: ") << &map << _T("\n");
#endif
このプログラムの実行結果は次のようになります。
before Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $493C 11
[Bart] = a CAge at $4654 13
after Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $49C0 12
[Bart] = a CAge at $4654 13
必要条件
ヘッダー : afxcoll.h