c++在头文件中向map中插入数据,key为string value为指针,访问时为什么为null
时间: 2023-07-16 10:16:29 浏览: 141
基于C++ map中key使用指针问题的详解
5星 · 资源好评率100%
可能是因为你没有正确初始化指针或者没有正确插入数据到map中导致的。以下是一个示例代码,你可以参考一下:
```c++
#include <iostream>
#include <map>
#include <string>
struct Data {
int value;
};
int main() {
std::map<std::string, Data*> myMap;
std::string key = "example_key";
Data* data = new Data{10};
myMap[key] = data; // 插入数据到map中
// 访问map中的值
Data* retrievedData = myMap[key];
if (retrievedData != nullptr) {
std::cout << "Retrieved value: " << retrievedData->value << std::endl;
} else {
std::cout << "Value not found in map!" << std::endl;
}
return 0;
}
```
在这个示例中,我们定义了一个结构体`Data`,然后创建了一个`std::map`对象,其中key是`std::string`类型,value是指向`Data`结构体的指针。我们插入了一个键值对到map中,然后访问了这个键值对。如果值存在,我们就打印出来,否则打印出“Value not found in map!”的消息。注意,我们在访问指针之前,需要进行空指针检查,以防止访问不存在的内存地址。
阅读全文