Я думал, что следующий код будет работать, но он сработает, когда целевой виджет находится в конце вектора.Безопасный способ непрерывного удаления из 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