我想使用一個字符串作爲std :: map的鍵,因爲該字符串可以從程序的不同部分進行更改,但我遇到了一個問題,很容易將數據存儲在地圖中,但我無法訪問它,因爲它要求指針地址作爲鍵,我想從字符串的值中訪問該數據。使用指針類型作爲鍵訪問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
您不能更改std :: map中條目的鍵。我想你必須重新思考爲什麼你不想這樣做。您可以將字符串存儲爲密鑰,每次更改密鑰時,都會擦除舊條目並使用更新後的密鑰將其重新插入到地圖中。 – P3trus 2011-12-27 18:50:26