gpt4 book ai didi

c++ - std::vector::erase() 是否在删除点使迭代器无效?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:10 24 4
gpt4 key购买 nike

C++03 标准 § 23.2.4.3/3 描述了 std::vector::erase(iterator position) 并具体说明了

Invalidates all the iterators and references after the point of the erase.

删除点的迭代器是否失效?具体来说,如果我有一个包含单个元素的 vector,我将 begin() 迭代器复制到局部变量中,然后调用

vec.erase(vec.begin())

我在局部变量中的迭代器是否会失效?

迭代器是在删除点之后还是在删除点之后失效?

最佳答案

我想说的是,您删除 vector 中唯一元素的示例表明插入点处的迭代器必须无效。

无论如何,在 C++11 中,措辞已更改 (23.3.6.5/3):

Effects: Invalidates iterators and references at or after the point of the erase.

关于c++ - std::vector::erase() 是否在删除点使迭代器无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868107/

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