For how long the iterator returned by std::set.find() lives?
I need to keep track of std::set elemen开发者_高级运维t by saving the iterator returned by set.find().
My questions is does insertion and removing other elements invalidates the obtained iterator? From a simple test I did I can see it is not, but I'd like to ensure this feature is by design.
It never invalidates iterators or pointers/references to the elements. Only if you remove the element itself does the iterator or pointer/reference become invalid.
23.1.2/8:
The insert members shall not affect the validity of iterators and references to the container, and the erase members shall invalidate only iterators and references to the erased elements.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论