что возвращает список / карта при неудачной вставке? - PullRequest
3 голосов
/ 06 сентября 2011

при вставке нового элемента в список / карту возвращает итератор, указывающий на добавленный элемент.
Но если вставка не удалась , что возвращает список / карта? Я прочитал ссылки, когда не удалось, список / карта не будет генерировать исключение.

Ответы [ 3 ]

3 голосов
/ 06 сентября 2011

map::insert возвращает пару итераторов и значение bool. Если вставка не удалась, значение bool устанавливается на false.

1 голос
/ 06 сентября 2011

Сайт cplusplus очень четко понимает, что map :: insert возвращает http://www.cplusplus.com/reference/stl/map/insert/

Возвращаемое значение Первая версия возвращает пару с ее парой-членом :: first, установленной на итератор, указывающий нанедавно вставленный элемент или элемент, который уже имел то же значение на карте.Элемент pair :: second в паре имеет значение true, если новый элемент был вставлен, или false, если элемент с таким же значением существовал.

Вторая версия возвращает итератор, указывающий либо на вновь вставленный элемент, либок элементу, который уже имел то же значение на карте.

Итератор - это тип члена, определенный как двунаправленный тип итератора.Разыменование этого итератора обращается к значению элемента, имеющему тип pair.

0 голосов
/ 06 сентября 2011

Если при вставке не удается выделить память, выдается bad_alloc.Во всех остальных случаях вставка работает отлично. ссылка

Обновление: также необходимо скопировать вставленный объект, который может выдать любое исключение.

...