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 に答える