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")
} 发布于 2016-01-28 13:49:26
如果在M中未找到任何元素,则find()返回M.end()。M.end()指向容器最后一个元素后面的元素,它是一个边界迭代器(这个位置没有数据)。
请参见:
http://en.cppreference.com/w/cpp/container/map/find http://en.cppreference.com/w/cpp/container/map/end
发布于 2016-01-28 16:36:31
代码运行良好,当在map中找到字符串"SRM“时,它将被删除。因为当方法find()没有找到值时,它会返回一个指向容器末尾的迭代器。也许你可以重新表述问题,更准确地说,你想要实现什么。
https://stackoverflow.com/questions/35053191
复制相似问题