当将新元素插入list / map时,它返回指向新添加元素的迭代器 但如果插入失败,列表/地图会返回什么?我已经读过引用,当失败时,list / map不会抛出异常。
答案 0 :(得分:3)
map::insert
返回迭代器和bool值对。如果插入失败,则bool值设置为false
。
答案 1 :(得分:1)
cplusplus网站非常清楚map :: insert返回的内容 http://www.cplusplus.com/reference/stl/map/insert/
返回值第一个版本返回一对及其成员 pair :: first设置为指向新插入的迭代器 元素或已在地图中具有相同值的元素。 如果是新元素,则该对中的pair :: second元素设置为true 插入时为false,如果存在具有相同值的元素,则为false。
第二个版本返回一个指向新的迭代器 insert元素或已经具有相同值的元素 地图。
iterator是一个成员类型,定义为双向迭代器类型。 取消引用此迭代器可访问元素的值,即 类型对。
答案 2 :(得分:0)
如果insert无法分配内存,则抛出bad_alloc
。在所有其他情况下,插入工作完美。 link
更新:它还需要复制可以抛出任何异常的插入对象。