C ++ STL map :: стереть несуществующий ключ - PullRequest
39 голосов
/ 30 марта 2009

Относительно карты 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');

Приветствия

Ответы [ 2 ]

50 голосов
/ 30 марта 2009

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

6 голосов
/ 30 марта 2009

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

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

...