C++ std::map 使用类指针作为 Value 类型
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 来访问存储的对象,并调用其成员函数。最后,注意在程序结束前,我们需要手动释放动态分配的内存。
原文地址: http://www.cveoy.top/t/topic/hurD 著作权归作者所有。请勿转载和采集!