如何使用密钥从std :: map中删除条目?

时间:2017-02-14 15:41:32

标签: c++11 stl containers

我正在关注地图,

struct details;

map<std::string, details> myMap;

myMap.erase(“key”);// Why I cant do this in C++11?

这在java中很简单

Map<std::string, details> map
map.remove(“key");

如何使用密钥从std :: map中删除条目?

谢谢

1 个答案:

答案 0 :(得分:0)

根据std::map::erase的在线文档,在第3种形式中,可以使用密钥直接调用它。检查我的clang编译器,使用C ++ 98或C ++ 14作为标准,并且包括mapstring头文件,它编译得很好。如果没有包含string头文件,我会收到错误,这可能就是为什么它不适合你。

在任何情况下,作为替代方案,您可以在字符串上使用find方法来获取迭代器,然后可以使用erase方法,如下所示:

myMap.erase(myMap.find("key"));