我注意到insert
的{{1}}函数返回std::unordered_map
。
std::pair
的第二个元素显示该值是否真的插入。但是,我对此感到困惑。由哈希映射实现的std::pair
可以在插入时失败吗?什么时候会发生?
以下是cppreference的说明:
返回值
1-2)返回一个由插入元素的迭代器(或阻止插入的元素)组成的对,以及表示插入是否发生的bool。
答案 0 :(得分:8)
从您链接到的相同页面:
将元素插入容器,如果容器尚未包含具有等效键的元素。
(我的重点)
换句话说,如果密钥已经存在于地图中,则bool
为false
。
请注意,异常会报告其他失败(如分配失败)(容器将保持不变)。