我正在尝试使用一个字符串作为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/

10-11 03:59