std::map 的 value 可以是类的指针,但需要在声明 std::map 时指定正确的模板参数。模板参数 2 表示 map 的 value 类型,应该是指向类的指针。

示例代码如下:

#include <iostream>
#include <map>

class MyClass {
public:
    MyClass(int value) : m_value(value) {}

    int getValue() const {
        return m_value;
    }

private:
    int m_value;
};

int main() {
    std::map<int, MyClass*> myMap;

    MyClass* obj1 = new MyClass(1);
    MyClass* obj2 = new MyClass(2);

    myMap[1] = obj1;
    myMap[2] = obj2;

    std::cout << myMap[1]->getValue() << std::endl;  // 输出:1
    std::cout << myMap[2]->getValue() << std::endl;  // 输出:2

    delete obj1;
    delete obj2;

    return 0;
}

在上面的示例中,我们声明了一个 std::map 对象 myMap,其中 key 的类型是 int,value 的类型是 MyClass*(指向 MyClass 类的指针)。我们创建了两个 MyClass 对象,并将它们的指针存储在 myMap 中。然后,我们可以通过 myMap 的 key 来访问存储的对象,并调用其成员函数。最后,注意在程序结束前,我们需要手动释放动态分配的内存。

C++ std::map 使用类指针作为 Value 类型

原文地址: http://www.cveoy.top/t/topic/hurD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录