std::set.find()返回的迭代器存在多长时间?

7

我需要通过保存set.find()返回的迭代器来跟踪std::set元素。

我的问题是,插入和删除其他元素是否会使得获取的迭代器无效?从我做的简单测试中,我可以看到它不会,但我想确保这个特性是按设计实现的。

1个回答

12

它从不使迭代器或指向元素的指针/引用失效。只有在删除元素本身时,迭代器或指针/引用才会失效。

23.1.2/8:

插入成员不应影响对容器的迭代器和引用的有效性,而擦除成员仅会使对已被擦除元素的迭代器和引用无效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接