在MFC(Microsoft Foundation Classes)中,CMapPtrToPtr 类是用于建立指针到指针的映射关系的类。它提供了一种将一个指针映射到另一个指针的方式。当你使用CMapPtrToPtr 类时,你可能会遇到公共运算符 []。

CMapPtrToPtr 中的 operator [] 运算符允许你像使用数组一样访问映射表中的元素。当你使用类似 map[key] 的语法时,该运算符会自动查找给定键(key)对应的值,并返回对应的指针。如果该键不存在,它会自动创建一个新的映射,并返回新的指针。

以下是一个简单的示例,演示了如何使用 CMapPtrToPtr 类及其 operator [] 运算符:
#include <afxtempl.h>

int main() {
    CMapPtrToPtr map;

    // 添加映射关系
    int* key = new int(42);
    int* value = new int(100);
    map[key] = value;

    // 使用 operator [] 获取值
    int* retrievedValue = map[key];

    // 输出结果
    if (retrievedValue != nullptr) {
        TRACE("Value associated with key %d: %d\n", *key, *retrievedValue);
    } else {
        TRACE("Key not found in the map.\n");
    }

    // 清理内存
    delete key;
    delete value;

    return 0;
}

请注意,使用 CMapPtrToPtr 类时,你需要小心管理内存,确保在不再需要映射关系时释放相关的内存。在上述示例中,通过 delete key; 和 delete value; 来释放为键和值分配的内存。




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