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