次の方法で共有


CMapStringToOb::SetAt

更新 : 2007 年 11 月

マップに要素を挿入することが第 1 の目的です。

void SetAt(
   LPCTSTR key,
   CObject* newValue 
);

パラメータ

  • key
    新しい要素のキーになる文字列を指定します。

  • newValue
    新しい要素の値となる CObject へのポインタを指定します。

解説

まず、キーを検索します。キーが見つかったときは対応する値を変更します。見つからなかったときは、新しいキーと値で要素を作ります。

CMapStringToOb::SetAt に類似している他のメンバ関数を以下に示します。

クラス

メンバ関数

CMapPtrToPtr

void SetAt( void*key, void*newValue );

CMapPtrToWord

void SetAt( void*key, WORDnewValue );

CMapStringToPtr

void SetAt( LPCTSTRkey, void*newValue );

CMapStringToString

void SetAt( LPCTSTRkey, LPCTSTRnewValue );

CMapWordToOb

void SetAt( WORDkey, CObject*newValue );

CMapWordToPtr

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

参照

参照

CMapStringToOb クラス

階層図

CMapStringToOb::Lookup

CMapStringToOb::operator [ ]

その他の技術情報

CMapStringToOb のメンバ