C++ STL map:: стереть несуществующий ключ

Что касается карты STL C++, стирание по ключу: -

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

законно ли стирать несуществующий ключ? т. е. является ли фрагмент ниже ok?

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

Ура

2 ответов


да, на самом деле,std::map::erase() возвращает тип size_type, который указывает количество удаленных ключей. Таким образом, он возвращает 0 Для ничего не стертого и 1 для чего-то стертого для карты.


Это прекрасно, mymap.в этом случае erase('D') вернет 0.

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