C++ STL map::erase a non-existing key

30,353

Solution 1

Yes, in fact, std::map::erase() returns a size_type which indicates the number of keys erased. Thus it returns 0 for nothing erased and 1 for something erased for a map.

Solution 2

This is perfectly fine, mymap.erase('D') will return 0 in this case.

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

Share:
30,353
fuad
Author by

fuad

Updated on July 08, 2022

Comments

  • fuad
    fuad almost 2 years

    Regarding the C++ STL map, erasing by key:-

     size_type map::erase ( const key_type& x );
    

    Is it legal to erase a non-existing key? i.e. is the snippet below ok?

    map<char,int> mymap;
    mymap['c']=30;
    mymap.erase('c');
    mymap.erase('c');
    mymap.erase('D');
    

    Cheers