lur*_*her 4 c++ vector std exception-safety
我正在尝试找到一个在线参考,以查看几个标准容器的异常安全性.
在这种情况下 std::vector,它是否保持push_back调用之前的状态?我认为向量的所有对象仍然有效(没有调用析构函数).std::vectorpush_back抛出std::bad_alloc异常后提供什么保证?
如果它抛出,矢量不会改变.即使不是capacity().
根据[container.requirements.general]:
除非另有规定(见23.2.4.1,23.2.5.1,23.3.3.4和23.3.6.5),本条款中定义的所有容器类型均满足以下附加要求:
[...]
- 如果push_back()或push_front()函数抛出异常,则该函数不起作用.