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

时间:2017-03-17 13:06:09

标签: c++ c++11 insert unordered-map

我注意到insert的{​​{1}}函数返回std::unordered_map

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

以下是cppreference的说明:

  

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

1 个答案:

答案 0 :(得分:8)

从您链接到的相同页面:

  

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

(我的重点)

换句话说,如果密钥已经存在于地图中,则boolfalse

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