map < string , int > M;
M["Top"] = 1;
M["Coder"] = 2;
M["SRM"] = 10;
int x = M["Top"] + M["Coder"];
if(M.find("SRM") != M.end()) {
M.erase(M.find("SRM")); // or even M.erase("SRM")
}
答案 0 :(得分:1)
如果在M中找不到元素,则find()返回M.end()。 M.end()指向容器的最后一个元素后面的元素,它是一个 边界迭代器(没有数据在这个位置)。
请参阅:
http://en.cppreference.com/w/cpp/container/map/find http://en.cppreference.com/w/cpp/container/map/end
答案 1 :(得分:0)
代码工作正常,当在地图中找到字符串“SRM”时,它将从中删除。因为当方法find()找不到值时,它返回一个指向容器末尾的迭代器。 也许你可以重新提出问题,更准确地说是你想要达到的目标。