gpt4 book ai didi

c++ - 结束迭代器失效规则

转载 作者:IT老高 更新时间:2023-10-28 12:58:21 25 4
gpt4 key购买 nike

关于this question on iterator invalidation rules , 标准的精神似乎很明显,例如,“deque 中间的删除使所有迭代器和对 deque 元素的引用无效”也指的是 end 迭代器。

但是,我找不到标准明确说明这一点的任何地方,严格来说,结束迭代器不是容器中 元素 的迭代器。

2003 年标准是否在某处明确说明了这一点?

最佳答案

例如,23.1/10:

no swap() function invalidates any references, pointers, or iterators referring to the elements of the containers being swapped. [ Note: The end() iterator does not refer to any element, so it may be invalidated. —end note ]

我不知道我们是否可以确定引用元素的迭代器在标准中一直被用于排除结束迭代器:/

正如评论中所说,我想这是为了允许结束迭代器指向容器内的标记值。

例如,典型的双向链接 List 实现是创建一个 Node 结构,并在 中按值具有一个 Node >List作为结束节点。

关于c++ - 结束迭代器失效规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440392/

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