在 MFC 中,CMap 类的 GetNextAssoc 方法用于遍历哈希表中的键-值对。该方法以键为参数,并返回与该键相关联的值,然后将下一个键-值对的键和值传递回调用者,从而实现对哈希表的迭代。

以下是一个简单的示例,演示如何使用 GetNextAssoc 方法:
#include <afxtempl.h>  // 包含 MFC 模板类头文件

// 假设我们创建了一个 CMap 类型的哈希表
CMap<int, int, CString, CString> myMap;

// 向哈希表中添加一些键-值对
myMap[1] = _T("One");
myMap[2] = _T("Two");
myMap[3] = _T("Three");

// 遍历哈希表中的键-值对
POSITION pos = myMap.GetStartPosition();
while (pos != nullptr) {
    int nKey;
    CString strValue;

    // 使用 GetNextAssoc 获取下一个键-值对
    myMap.GetNextAssoc(pos, nKey, strValue);

    // 输出键和值
    TRACE(_T("Key: %d, Value: %s\n"), nKey, strValue);
}

在这个示例中,我们使用 GetStartPosition 方法获取哈希表的开始位置,并在循环中使用 GetNextAssoc 方法来迭代哈希表中的键-值对。在每次迭代中,GetNextAssoc 返回下一个键-值对的键和值。

请注意,GetNextAssoc 是一种在哈希表上进行迭代的常见方法。在循环中,你可以使用返回的键和值执行相应的操作。当 GetNextAssoc 返回 FALSE 时,表示已经迭代完整个哈希表。


转载请注明出处:http://www.pingtaimeng.com/article/detail/18652/MFC/CMap