插入失败时列表/映射返回什么?

时间:2011-09-06 07:10:53

标签: c++ list exception stl map

当将新元素插入list / map时,它返回指向新添加元素的迭代器 但如果插入失败,列表/地图会返回什么?我已经读过引用,当失败时,list / map不会抛出异常。

3 个答案:

答案 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

更新:它还需要复制可以抛出任何异常的插入对象。