在 MFC 的 CMapStringToPtr 类中,没有直接支持索引操作符 operator[]。但是,你可以使用 Lookup 方法来实现类似的功能。Lookup 方法通过给定的键查找映射中的条目,并返回相应的值。

以下是使用 Lookup 方法来模拟 operator[] 的例子:
// 假设 pMap 是一个 CMapStringToPtr 对象
CString strKey = _T("ExampleKey");

// 使用 Lookup 方法查找键对应的值
void* ptrValue = nullptr;
if (pMap.Lookup(strKey, ptrValue)) {
    // 找到了,ptrValue 中存储了与键关联的指针值
    // 这里可以对 ptrValue 进行操作
} else {
    // 没有找到,可以根据需要进行处理
}

// 如果你希望直接使用类似于数组的索引方式,可以封装成一个函数
void* GetValueFromMap(CMapStringToPtr& map, LPCTSTR key) {
    void* value = nullptr;
    map.Lookup(key, value);
    return value;
}

// 使用类似数组的索引方式获取值
void* ptrValue = GetValueFromMap(pMap, _T("ExampleKey"));

虽然没有直接的 operator[],但通过使用 Lookup 方法,你可以实现类似的功能来检索映射中的值。


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