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');
乾杯
はい、実際にstd::map::erase()
は、消去されたキーの数を示すsize_typeを返します。したがって、マップの場合、何も消去されていない場合は0を返し、消去されたものの場合は1を返します。
これは完全に問題ありません。この場合、mymap.erase('D')は0を返します。
http://www.cplusplus.com/reference/stl/map/erase.htmlを参照してください