내가 시도한 모든 것에 구문 오류가 발생합니다. 누군가는 코멘트 대신에 무엇을 넣을 지 말해 줄 수 있습니까? 이것은 처음으로 벡터 작업입니다.이 상황에서 벡터에서 항목을 지우려면 어떻게합니까?
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); 작동하지 않습니다. 내가 이해할 수없는 다음과 같은 오류 얻을 :
가 'INT'에서 매개 변수 1 변환 할 수 없습니다 '표준을 :: _ Vector_const_iterator < _Myvec>'
나는 매개 변수를 사용하는 int를 참조 모든 예제, 그래서 나는 무엇을해야할지 모른다.
또한 벡터의 요소가 제거 된 후에 아래로 이동하기 때문에 항목을 제거한 후에도 i를 감소시켜야하므로 동일한 값으로 루프를 다시 수행해야합니까? 아니면 그것을하는 더 우아한 방법이 있습니까?
'int' 인수를 사용하여'std :: vector :: erase' 예제를 실제로 본다면 틀린 것입니다. iterator *가 필요합니다. http://www.cplusplus.com/reference/stl/vector/erase/ – jamesdlin