gpt4 book ai didi

c++ - std::bad_alloc 之后 std::vector 的状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:14 29 4
gpt4 key购买 nike

我试图找到一个在线引用来查看几个标准容器的异常安全性。

std::vector 的情况下,它是否保持 push_back 调用之前的状态?我假设 vector 的所有对象仍然有效(没有调用析构函数)。在 push_back 抛出 std::bad_alloc 异常后,提供什么保证 std::vector

最佳答案

如果它抛出, vector 不会改变。甚至不是 capacity()

根据 [container.requirements.general]:

Unless otherwise specified (see 23.2.4.1, 23.2.5.1, 23.3.3.4, and 23.3.6.5) all container types defined in this Clause meet the following additional requirements:

[...]

— if an exception is thrown by a push_back() or push_front() function, that function has no effects.

关于c++ - std::bad_alloc 之后 std::vector 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899814/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com