CMapStringToOb::GetNextAssoc
マップ要素の rNextPositionで取得し、マップの次の要素を参照するに rNextPosition を 更新します。
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
パラメーター
rNextPosition
GetStartPosition の前の GetNextAssoc または呼び出しによって返される POSITION の値への参照を指定します。rKey
取得する要素 (文字列) の Enter キーを指定します。rValue
取得する要素 ( CObject のポインター) の戻り値を指定します。このパラメーターに関する詳細については、"解説"を参照してください。
解説
この関数は、マップにすべての要素を反復処理に最も役立ちます。位置のシーケンスがキー値のシーケンスと必ずしも同じではないことに注意してください。
取得する要素がマップ内の最後の場合、rNextPosition の新しい値は nullに設定されます。
rValue の パラメーターには、コンパイラが必要な内容を次の例に示すように **CObject*&**に、オブジェクトの型をキャストしてください:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
これは、テンプレートに基づいて GetNextAssoc のマップについてもせん。
次の表は CMapStringToOb::GetNextAssocに似ている他のメンバー関数を示します。
Class |
メンバー関数 |
---|---|
void GetNextAssoc( POSITION& のrNextPosition の, void*& のrKey の, void*& のrValue ) const; |
|
void GetNextAssoc( POSITION& のrNextPosition の, void*& のrKey の, WORD& のrValue ) const; |
|
void GetNextAssoc( POSITION& のrNextPosition の, CString& のrKey の, void*& のrValue ) const; |
|
void GetNextAssoc( POSITION& のrNextPosition の, CString& のrKey の, CString& のrValue ) const; |
|
void GetNextAssoc( POSITION& のrNextPosition の, WORD& のrKey の, CObject*& のrValue ) const; |
|
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
必要条件
Header: afxcoll.h