C ++ unordered_map异常安全

Gam*_*per 2 unordered-map exception-safety c++11

我在C ++规范(cplusplus.com)上徘徊,发现没有任何关于std :: unordered_map异常安全的信息

所以基本上如果我写

map["foo"]=5;
Run Code Online (Sandbox Code Playgroud)

并且由于内存或bad_alloc不足而引发异常,我可以假设我的地图是什么?

  • 它处于有效状态吗?(基本保证)
  • 它保持不变吗?(有保证)
  • 它处于无效状态吗?(不保证)

How*_*ant 5

23.2.4.1异常安全保证[associative.reqmts.except]

2对于关联容器,如果插入单个元素的insert或emplace函数中的任何操作均引发异常,则该插入没有效果。

本段适用于索引运算符。所以:

  • 它保持不变。(有保证)