web-dev-qa-db-ja.com

C ++ STL map ::存在しないキーを消去する

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

乾杯

45
fuad

はい、実際、 std::map::erase() は、消去されたキーの数を示すsize_typeを返します。したがって、マップで何も消去されなかった場合は0を返し、何かが消去された場合は1を返します。

59
rlbond

これはまったく問題ありません。この場合、mymap.erase( 'D')は0を返します。

を参照してくださいhttp://www.cplusplus.com/reference/stl/map/erase.html

7
brian-brazil