我有一个std::unordered_map
我emplace()
通过以下对象:
my_map.emplace(std::piecewise_construct,
std::forward_as_tuple(key),
std::forward_as_tuple(value1, value2));
这在运行时期间的某个时刻失败,在返回的元组的第二个位置有一个false
。有没有办法获得更多有关正在发生的事情的信息? top
并没有显示任何内存问题。
答案 0 :(得分:10)
false
中的.second
表示“已存在的等效元素”。在这种情况下,.first
中的迭代器指向该等效元素。
所发生的事情是你在地图中已经有key
,你可以在返回值上使用.first
来访问它。