станд :: набор <T>:: Стирание (ключ). Что если ключа там нет? - PullRequest
13 голосов
/ 24 декабря 2010

если я удалю элемент из std :: set и передам ключ, а не итератор, а ключ не находится в наборе прямо сейчас, будет ли создано исключение? Дело в том, что каждое второе предложение в документации MSDN гласит: «это действительно так, но это не соответствует стандарту». Поэтому мне нужно знать стандартное поведение. Я просто не мог найти его в стандарте. Перенаправление на соответствующий пункт также подойдет. Спасибо.

Ответы [ 2 ]

18 голосов
/ 24 декабря 2010
size_type erase ( const key_type& x );

Возвращаемое значение

Функция возвращает количество элементы стерты, которые в наборе контейнеры 1, если элемент с значение х существовало (и таким образом было впоследствии стирается) и ноль в противном случае.

(из set :: erase )

9 голосов
/ 24 декабря 2010

Найдено в разделе 23.1 (Требования к контейнеру):

без стирания (), pop_back () или Функция pop_front () выдает исключение.

То есть erase не может выдать исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...