我有一个std::unordered_map
,我emplace()
一个对象通过:
my_map.emplace(std::piecewise_construct,
std::forward_as_tuple(key),
std::forward_as_tuple(value1, value2));
这在运行时的某个时刻失败,返回的元组的第二个位置为 false
。有没有办法获得有关正在发生的事情的更多信息? top
没有显示任何内存问题。
最佳答案
.second
中的 false
表示“等价元素已经存在”。在这种情况下,.first
中的迭代器指向该等效元素。
所以发生的事情是您在 map 中已经有了 key
,您可以在返回值上使用 .first
来访问它。
关于c++ - 为什么 std::unordered_map::emplace() 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23062672/