为什么std :: unordered_map :: emplace()会失败?

chr*_*ock 2 c++ unordered-map c++11

我有std::unordered_mapemplace()的目的是通过:

my_map.emplace(std::piecewise_construct,
               std::forward_as_tuple(key),
               std::forward_as_tuple(value1, value2));
Run Code Online (Sandbox Code Playgroud)

这在运行时期间的某个时刻失败,false返回元组的第二个位置.有没有办法获得有关正在发生的事情的更多信息?top记忆没有任何问题.

Rei*_*ica 10

false.second指"已经存在等效元件".在这种情况下,迭代器.first指向该等效元素.

所以发生的事情是你已经key在地图中,你可以使用.first返回值来访问它.