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的其他成员函数。

成员函数

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

要求

Header: afxcoll.h

请参见

参考

CMapStringToOb选件类

层次结构图

CMapStringToOb::GetStartPosition