C ++ STL map ::擦除不存在的键

时间:2009-03-30 01:20:41

标签: c++ stl map key erase

关于C ++ STL地图,按键删除: -

 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 个答案:

答案 0 :(得分:50)

是的,实际上,std::map::erase()返回一个size_type,表示已删除的密钥数。因此,对于没有擦除的东西,它返回0,对于地图擦除的东西,它返回1。

答案 1 :(得分:6)

这很好,mymap.erase('D')在这种情况下将返回0。

请参阅http://www.cplusplus.com/reference/stl/map/erase.html