BOOL GetNextAssoc(POSITION& rNextPosition, CString& rKey, CObject*& rValue) const;
- rNextPosition: 传入上一次调用 GetNextAssoc 后的位置,函数将更新为下一个位置。
- rKey: 传出参数,用于接收下一个键。
- rValue: 传出参数,用于接收与下一个键关联的对象。
该方法返回一个布尔值,指示是否成功获取下一个键值对。如果有下一个键值对,则返回 TRUE,否则返回 FALSE。
示例用法:
CMapStringToOb myMap; // 创建一个 CMapStringToOb 对象
// 向映射中添加一些键值对
myMap.SetAt(_T("Key1"), new CMyObject1());
myMap.SetAt(_T("Key2"), new CMyObject2());
myMap.SetAt(_T("Key3"), new CMyObject3());
POSITION pos = myMap.GetStartPosition(); // 获取映射的起始位置
while (pos != NULL) {
CString strKey;
CObject* pObj;
myMap.GetNextAssoc(pos, strKey, pObj);
// 使用 strKey 和 pObj 处理每个键值对
// ...
delete pObj; // 注意释放内存,以防内存泄漏
}
在这个示例中,通过 GetStartPosition 获取映射的起始位置,然后使用 GetNextAssoc 遍历映射中的键值对。这样可以对映射中的每个键值对执行相应的操作。在操作完成后,务必注意释放分配给对象的内存,以防止内存泄漏。
转载请注明出处:http://www.zyzy.cn/article/detail/18735/MFC/CMapStringToOb