CMapStringToOb::GetNextAssoc
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 に類似している他のメンバー関数を以下に示します。
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
必要条件
**ヘッダー:**afxcoll.h
参照
参照
CMapStringToOb::GetStartPosition