1. 程式人生 > >STL iterator使用註意事項

STL iterator使用註意事項

tail 一個 check href 同時 docker clas ref stl

當一個Container執行了一次earse操作之後,原來用來遍歷的iterator就失效了,其行為是不可預測的,具體情況由實現決定。

同時earse操作會返回一個指向container下一個元素的iterator,如果想繼續遍歷,就得用返回的iterator繼續操作。

如果只是刪除遍歷時候碰到的第一個符合條件的元素,那麽在earse之後添加break,使得不再進行遍歷。如果要繼續操作,那麽就得改成

for ( std::list<*>::iterator it =ObjList.begin(); it != ObjList.end(); )
{
       If((*it)->regin == CheckRegin )
       {
              it
= ObjList.earse(it); } else { ++it; } }

from:http://blog.csdn.net/hsujouchen/article/details/8987233

STL iterator使用註意事項