我认为下面的代码可以工作,但是当目标小部件位于矢量的末尾时它会崩溃。从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