std :: set.find()返回的迭代器有多长?

时间:2010-03-02 16:16:12

标签: c++ stl set stdset

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

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

1 个答案:

答案 0 :(得分:11)

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

23.1.2/8

  

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