59

关于 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');

干杯

4

2 回答 2

80

是的,事实上,std::map::erase()返回一个 size_type 表示已擦除的键数。因此,它返回 0 表示未擦除任何内容,返回 1 表示地图已擦除的内容。

于 2009-03-30T01:22:19.433 回答
9

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

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

于 2009-03-30T01:23:42.643 回答