我正在尝试使用一个字符串作为std::map的键,因为可以从程序的不同部分更改该字符串,但是遇到一个问题,我可以轻松地将数据存储在映射中,但是我无法访问它,因为它要求将指针地址作为键,而我想从字符串的值访问该数据。
这是代码
using namespace std;
string *AString = "pointer";
map<string *, bool> AMap; //Declare
AMap[AString] = true; //Insert into map with key AString
cerr << AMap["pointer"]; //Does not work
最佳答案
解决方案是不使用指针:
using namespace std;
string AString = "pointer";
map<string, bool> AMap;
AMap[AString] = true;
cerr << AMap["pointer"];
您确实不希望在 map 中的程序其他部分更改 map 键。这只是自找麻烦,并指示设计问题。
关于c++ - 访问以指针类型为键的std::map,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8648061/