【发布时间】:2014-04-14 14:24:41
【问题描述】:
我有一个std::unordered_map,我通过emplace() 一个对象:
my_map.emplace(std::piecewise_construct,
std::forward_as_tuple(key),
std::forward_as_tuple(value1, value2));
这在运行时的某个时刻失败,false 在返回的元组的第二个位置。有没有办法获得有关正在发生的事情的更多信息? top 没有显示任何内存问题。
【问题讨论】:
-
真正的男人不看手册,但程序员有时应该:en.cppreference.com/w/cpp/container/unordered_map
-
@DavidRodríguez-dribeas 我多次阅读en.cppreference.com/w/cpp/container/unordered_map/emplace。 “返回值”部分对我来说不像 Angew 的回答那么清楚。
-
公平点,
emplace的文档应该改进,它缺少insert文档中的一个关键语句:它可能无法插入的条件不抛出 和异常。 -
问:我尝试稍微改进一下 cppreference 中的文档,但我不确定它现在清晰了多少。是不是更清楚了?
-
@DavidRodríguez-dribeas 您更改了哪个文件?我没有看到 unordered_map 或 emplace 的任何近期修订历史记录。
标签: c++ c++11 unordered-map