C++ STL map::erase删除不存在的键

70

关于C++ STL中的map,通过键值进行删除:

 size_type map::erase ( const key_type& x );

删除一个不存在的键是否合法?也就是说,下面的代码片段是否可行?

map<char,int> mymap;
mymap['c']=30;
mymap.erase('c');
mymap.erase('c');
mymap.erase('D');

干杯

2个回答

90

是的,事实上,std::map::erase() 返回一个 size_type 类型的值,用以表示删除的键值对数量。因此,当 map 中没有被删除的键值对时,返回 0,有被删除的键值对时,返回 1。


13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接