示例代码为:
map<char* , int> map;
map["Privilege"] = 1;
char* code[]="Privilege";
val = map.find(code); // returns map.end()
val = map.find("Privilege"); // returns correct value
我需要在变量键的基础上找到地图中的值:
val = map.find(code);
它正在返回
map.end()
请提出建议
答案 0 :(得分:1)
您在地图中存储角色指针,而不是字符串。 map.find
比较了两个指针并发现它们不相等。
只需使用map<string, int>
。
答案 1 :(得分:1)
使用std :: string而不是char * 由于您要保存字符串值,而不是其位置。 另外,我不会使用名称&#34; map&#34;变量(因为已经使用过)
#include <map>
#include <string>
std::map<std::string, int> mymap;
mymap["Privilege"] = 1;
std::string code = "Privilege";
val = mymap.find(code);
val = mymap.find("Privilege");
答案 2 :(得分:1)
在C ++应用程序中,请勿使用char*
,而是使用string
。我的意思是,将地图定义为map<string , int> MyMap;
顺便说一下,map
不是变量的好名字: - )