C++ std::bad_alloc之后的std::vector状态

C++ std::bad_alloc之后的std::vector状态,c++,vector,std,exception-safety,C++,Vector,Std,Exception Safety,我试图找到一个在线参考,看看几个std容器的异常安全性 在std::vector的情况下,它是否保持回推调用之前的状态?我假设向量的所有对象仍然有效(没有调用析构函数)。在push\u back抛出一个std::bad\u alloc异常后,什么保证提供了std::vector 如果抛出,向量不会改变。甚至不是容量() 根据[容器.要求.概述]: 除非另有规定(见23.2.4.1、23.2.5.1、23.3.3.4和23.3.6.5),本规范中定义的所有容器类型 条款满足以下附加要求: [……]

我试图找到一个在线参考,看看几个std容器的异常安全性


std::vector
的情况下,它是否保持回推调用之前的状态?我假设向量的所有对象仍然有效(没有调用析构函数)。在push\u back抛出一个
std::bad\u alloc
异常后,什么保证提供了
std::vector

如果抛出,向量不会改变。甚至不是
容量()

根据[容器.要求.概述]:

除非另有规定(见23.2.4.1、23.2.5.1、23.3.3.4和23.3.6.5),本规范中定义的所有容器类型 条款满足以下附加要求:

[……]

-如果push_back()或push_front()函数引发异常,则该函数无效