插入失败时list/map返回什么?

what does list/map return when insert failed?

本文关键字:返回 什么 map 失败 list 插入      更新时间:2023-10-16

向list/map中插入新元素时,返回指向新添加元素的迭代器。
但是如果插入失败,list/map返回什么?我已经阅读了参考资料,当失败时,list/map不会抛出异常。

map::insert返回一对迭代器和bool值。如果插入失败,则将bool值设置为false

cplusplus网站非常清楚map::insert返回什么http://www.cplusplus.com/reference/stl/map/insert/

第一个版本返回一个pair及其成员Pair::first设置为一个迭代器,该迭代器指向新插入的对象元素或映射中已经具有相同值的元素。如果是新元素,pair中的第二个元素被设置为true如果存在具有相同值的元素,则为false。

第二个版本返回一个指向new插入的元素或已具有相同值的元素地图。

iterator是成员类型,定义为双向迭代器类型。对该迭代器解引用将访问元素的值,即of类型对。

如果insert不能分配内存,则抛出bad_alloc。在所有其他情况下,insert都可以完美地工作。链接

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