请大家帮我总结一下STL里面的各种窗口的迭代器可能失效情况(就添加删除数据两种情况,注意是可能失效),我做了如下的表格容器名      添加      删除 
vector    可能      可能
deque
list
set
map我只对vector窗口比较,它在添加数据或者删除数据时,都有可能让迭代器失效。
至于我为什么要关心迭代器失效,是因为我保存了迭代器。
至于保存迭代器有什么用,我在这里也说不清楚,总之我需要保存它,所以我更需要在它失效的情况下,重新保存新的迭代器。

解决方案 »

  1.   

    要把迭代器、指针和引用的失效次数减到最少,就应该使用基于节点的容器,因为在这些容器上进行插入和删除不会使迭代器、指针和引用失效(除非它们指向你删除的元素)。一般来说,在连续内存容器上插入和删除会使所有指向容器的迭代器、指针和引用失效。 
    <Effective STL>
      

  2.   

    那么请UltraBejing 帮我搜一下,看看有什么答案好吗?
    要全的,不全的话,至少了list,因为对于vector的失效情况,我基本上凭其实现原理可以猜出来,
    我现在最关系的是list!