我認爲下面的代碼可以工作,但是當目標小部件位於矢量的末尾時它會崩潰。從std :: vector連續擦除的安全方法?
for(std::vector<AguiWidget*>::iterator it = children.begin();
it != children.end(); ++it)
{
if((*it) == widget)
it = children.erase(it);
}
我希望它通過並刪除它找到的小部件的任何實例。我明白這個方法是N^2,但是由於這是事件驅動,所以很好。我只是不知道爲什麼這會失敗。當它發生時,'它'==小部件。
感謝
退房http://stackoverflow.com/questions/347441/erasing-elements-from-a-vector – GWW 2010-11-14 02:34:20