gpt4 book ai didi

c++ - std::vector::erase 用于无效范围

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:04 28 4
gpt4 key购买 nike

我在文档中找不到任何关于 std::vector::erase 的无效范围(不是空的,erase 是为它们定义的) ,比如 [end()+1, end())。例如:

std::vector<int> v;
v.erase(std::find(b.begin(), v.end(), 9001) + 1, v.end());

这段代码是否可以安全地用于删除一个特定元素之后的元素,或者是否有必要检查 std::find 是否返回了一些东西 != v.end()?

最佳答案

来自 http://www.cplusplus.com/reference/vector/vector/erase/

在异常安全中:

[..] An invalid position or range causes undefined behavior.

所以不,代码不安全。

关于c++ - std::vector::erase 用于无效范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845890/

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