在此代码片段中,Update() 返回一个布尔值,如果它返回 false,我想从向量中删除该元素。
但是,这会产生调试断言失败的运行时错误。表达式是“向量迭代器不可递增”。
编码:
for(auto iter = someVector.begin(); iter != someVector.end(); ++iter){
if(!iter->get()->Update()) iter = someVector.erase(iter);
}
我也尝试从迭代器中减去如下:
for(auto iter = particles.begin(); iter != particles.end(); ++iter){
if(!iter->get()->Update()) iter = --(particles.erase(iter));
}
...但这会导致“向量迭代器不可递减”。
如何使我的代码按预期工作;以便当 Update() 函数返回 false 时删除向量元素?