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

fua*_*uad 44 c++ stl key map erase

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

 size_type map::erase ( const key_type& x );
Run Code Online (Sandbox Code Playgroud)

擦除不存在的密钥是否合法?即下面的片段好吗?

map<char,int> mymap;
mymap['c']=30;
mymap.erase('c');
mymap.erase('c');
mymap.erase('D');
Run Code Online (Sandbox Code Playgroud)

干杯

rlb*_*ond 56

是的,实际上,std::map::erase()返回一个size_type,表示擦除的键数.因此,它返回0表示没有擦除,1表示擦除地图的内容.


bri*_*zil 7

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

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