我尝试的所有内容都出现语法错误。有人可以告诉我用什么代替评论吗?这是我第一次使用向量。
EntityList是Entity类的静态向量。
for(int i = 0;i < (int)Entity::EntityList.size();i++) {
if(!Entity::EntityList[i]) continue;
if(Entity::EntityList[i]->isDead){
//Erase from vector
//Decrement i?
}
Entity::EntityList[i]->OnLoop();
}
我应该用什么代替评论?我已经尝试了一些方法,但是没有任何效果。例如,Entity :: EntityList.erase(i);不起作用。我收到以下错误,我不明白:
无法将参数1从'int'转换为'std :: _ Vector_const_iterator '
我看到的所有示例都将ints用作参数,因此我不知道该怎么做。
另外,由于向量中的元素在删除后会向下移动,因此删除项目后是否应该将i减1,以便它再次以相同的值执行循环?还是有一种更优雅的方式呢?
最佳答案
您可以尝试:
Entity::EntityList.erase(Entity::EntityList.begin() + i);
是的,你应该减一。
关于c++ - 在这种情况下,如何从 vector 中删除项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10369568/