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

时间:2014-04-14 14:24:42

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

我有一个std::unordered_mapemplace()通过以下对象:

my_map.emplace(std::piecewise_construct,
               std::forward_as_tuple(key),
               std::forward_as_tuple(value1, value2));

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

1 个答案:

答案 0 :(得分:10)

false中的.second表示“已存在的等效元素”。在这种情况下,.first中的迭代器指向该等效元素。

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

相关问题