什么时候std :: unordered_map :: insert会失败?

Rin*_*o_D 1 c++ unordered-map insert c++11

我注意到insert函数std::unordered_map返回a std::pair.

std::pair显示值是否真正插入的第二个元素.但是,我对此感到困惑.可以std::unordered_map通过哈希映射实现的a在插入时失败吗?什么时候会发生?

这是cppreference的描述:

返回值
1-2)返回一个由插入元素的迭代器(或阻止插入的元素)组成的对,以及表示插入是否发生的bool.

Mar*_*ica 9

从您链接到的同一页面:

如果容器尚未包含具有等效键的元素,则将元素插入容器中.

(我的重点)

换句话说,如果密钥已经存在于地图中,bool则为false.

请注意,异常将报告其他故障(如分配失败)(容器将保持不变).