Нужно ли нам проверять, содержит ли unordered_set элемент, прежде чем пытаться стереть его?

#c #c 11

#c #c 11

Вопрос:

Допустим, у меня есть set:

 std::unordered_set<int> mints;
  

Тогда я делаю:

 mints.erase(foo);
  

Но mints не содержит foo! Гарантировано ли, что ничего плохого не произойдет, и что erase просто вернет 0?

Комментарии:

1. Кажется, проще просто прочитать документацию. Например, здесь

Ответ №1:

Если вы получите перегруженный erase() с erase( const key_typeamp; key ) помощью, а ключ не существует, то ничего плохого не произойдет, это будет no-op и erase() вернется 0 .