CMapStringToOb::GetNextAssoc
检索映射元素在 rNextPosition,然后更新 rNextPosition 指映射的下一个元素。
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
参数
rNextPosition
指定对以前 GetNextAssoc 返回的 POSITION 值或 GetStartPosition 调用。rKey
指定所检索的元素的名称(字符串)返回的键。rValue
指定所检索的元素( CObject 指针)的返回值。有关更多参见备注有关此参数。
备注
此功能用于重复最有用通过所有元素都映射。请注意放置顺序不一定是的与键值序列。
如果已检索的元素位于映射的最后,则 rNextPosition的 新值设置为 NULL。
对于 rValue 参数,请确保将您的对象类型到 CObject*&,正是编译器要求,如下面的示例所示:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
这不是如此 GetNextAssoc 对于基于模板的映射。
下表显示类似于 CMapStringToOb::GetNextAssoc的其他成员函数。
类 |
成员函数 |
---|---|
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