在 MFC(Microsoft Foundation Classes)中,CMapPtrToPtr 类提供了 GetNextAssoc 方法,用于在映射中迭代访问键值对。这个方法的目的是从映射中获取下一个键值对。

以下是 CMapPtrToPtr::GetNextAssoc 的一个示例用法:
#include <afxtempl.h>

// 创建一个 CMapPtrToPtr 对象
CMapPtrToPtr myMap;

// 向映射中插入指针对
myMap.SetAt((void*)1, (void*)100);
myMap.SetAt((void*)2, (void*)200);
myMap.SetAt((void*)3, (void*)300);

// 迭代访问键值对
POSITION pos = myMap.GetStartPosition();
while (pos != NULL) {
    void* key;
    void* value;
    
    // 使用 GetNextAssoc 获取下一个键值对
    myMap.GetNextAssoc(pos, key, value);

    // 处理键值对,例如输出到控制台
    wprintf(L"Key: %p, Value: %p\n", key, value);
}

在这个例子中,GetStartPosition 用于获取映射的起始位置,然后 GetNextAssoc 在迭代过程中获取下一个键值对。迭代通过一个 POSITION 类型的指针进行,当 pos 变为 NULL 时表示迭代结束。

GetNextAssoc 方法对于在映射中迭代访问键值对非常有用。请注意,这是 CMapPtrToPtr 类中用于迭代的常见用法。


转载请注明出处:http://www.zyzy.cn/article/detail/18673/MFC/CMapPtrToPtr