次の方法で共有


CMapStringToOb::GetNextAssoc

更新 : 2007 年 11 月

rNextPosition が示す位置のマップの要素を取得します。その後、マップ内の次の要素を参照できるように、rNextPosition を更新します。

void GetNextAssoc(
   POSITION& rNextPosition,
   CString& rKey,
   CObject*& rValue 
) const;

パラメータ

  • rNextPosition
    直前に呼び出した GetNextAssoc 関数または GetStartPosition 関数が返す POSITION 値への参照を指定します。

  • rKey
    取得した要素のキー (文字列) が返されます。

  • rValue
    取得した要素の値 (CObject へのポインタ) が返されます。このパラメータについては、「解説」を参照してください。

解説

この関数は、マップ内のすべての要素を順次取得するときに使います。位置の順序は、キーの値の順序と必ずしも同じではありません。

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

rValue パラメータは以下の例に示すように、コンパイラが要求する CObject*& にオブジェクトの型をキャストしてください。

CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);      

ただし、この例はテンプレートを基にしたマップの GetNextAssoc には当てはまりません。

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

クラス

メンバ関数

CMapPtrToPtr

void GetNextAssoc( POSITION&rNextPosition, void*&rKey, void*&rValue ) const;

CMapPtrToWord

void GetNextAssoc( POSITION&rNextPosition, void*&rKey, WORD&rValue ) const;

CMapStringToPtr

void GetNextAssoc( POSITION&rNextPosition, CString&rKey, void*&rValue ) const;

CMapStringToString

void GetNextAssoc( POSITION&rNextPosition, CString&rKey, CString&rValue ) const;

CMapWordToOb

void GetNextAssoc( POSITION&rNextPosition, WORD&rKey, CObject*&rValue ) const;

CMapWordToPtr

void GetNextAssoc( POSITION&rNextPosition, WORD&rKey, void*&rValue ) const;

使用例

すべてのコレクションの例で使われている CAge クラスのリストについては、CObList::CObList を参照してください。

CMapStringToOb map;
POSITION pos;
CString key;
CAge* pa;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
// Iterate through the entire map, dumping both name and age.
for (pos = map.GetStartPosition(); pos != NULL;)
{
   map.GetNextAssoc(pos, key, (CObject*&)pa);
   #ifdef _DEBUG
         afxDump << key << _T(" : ") << pa << _T("\n");
   #endif
}

このプログラムの実行結果は次のようになります。

Lisa : a CAge at $4724 11

Marge : a CAge at $47A8 35

Homer : a CAge at $4766 36

Bart : a CAge at $45D4 13

必要条件

ヘッダー : afxcoll.h

参照

参照

CMapStringToOb クラス

階層図

CMapStringToOb::GetStartPosition

その他の技術情報

CMapStringToOb のメンバ