7

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

我的问题是插入和删除其他元素是否会使获得的迭代器无效?从我做的一个简单测试中我可以看出它不是,但我想确保这个功能是设计使然。

4

1 回答 1

12

它永远不会使迭代器或对元素的指针/引用无效。只有当您删除元素本身时,迭代器或指针/引用才会变得无效。

23.1.2/8

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

于 2010-03-02T16:18:13.067 回答