您能在迭代過(guò)程中從std:list中刪除元素嗎?我有這樣的代碼:for (std::list<item*>::iterator i=items.begin();i!=items.end();i++){
bool isActive = (*i)->update();
//if (!isActive)
// items.remove(*i);
//else
other_code_involving(*i);}items.remove_if(CheckItemNotActive);我希望在更新后立即刪除不活動(dòng)的項(xiàng)目,以避免再次瀏覽列表。但是,如果我添加注釋行,當(dāng)我到達(dá)i++*“列表迭代器不可遞增”。我嘗試了一些沒(méi)有在for語(yǔ)句中增加的交替語(yǔ)句,但是我沒(méi)有得到任何工作。在您行走STD:List時(shí),刪除項(xiàng)目的最佳方法是什么?
您能在迭代過(guò)程中從std:list中刪除元素嗎?
尚方寶劍之說(shuō)
2019-06-29 17:45:02