我试图将所有变量存储在地图中,以便能够轻松创建软件变量的打印,但我仍然无法使其适用于地图。有人可以帮忙吗?
int ovalor = 10;
map<string, int> *mapping = new map<string, int>();
(*mapping)["ovalor"] = &ovalor;
错误:类型&#34; int *&#34;的值不能分配给&#34; int&#34;
类型的实体
非常感谢
答案 0 :(得分:3)
消息说它真的需要:
error: a value of type "int *" cannot be assigned to an entity of type "int"
因为这里:
(*mapping)["ovalor"] = &ovalor;
您正在使用ovalor
的地址,该地址会为您提供int *
,然后尝试将其存储在将string
映射到int
的地图中。指向整数的指针与长粉笔的整数不同。此外,指向局部变量的指针(这看起来像)稍后就会遇到麻烦。
顺便说一句,为什么指针的东西呢?做起来要简单得多
map<string, int> mapping;
并且可以通过悬空参考和不同意的记忆来避免担忧。