fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. struct Entity { bool alive = true; bool GetAlive() { return alive; } };
  6.  
  7. int main()
  8. {
  9. std::vector<Entity *> bulletEnemyObjects = {
  10. new Entity, new Entity, new Entity, new Entity, new Entity, new Entity
  11. };
  12. bulletEnemyObjects[3]->alive = false;
  13. bulletEnemyObjects[4]->alive = false;
  14. std::cout << "before count: " << bulletEnemyObjects.size() << "\n";
  15.  
  16. bulletEnemyObjects.erase(
  17. std::remove_if(bulletEnemyObjects.begin(), bulletEnemyObjects.end(),
  18. [](Entity *p) { return !p->GetAlive(); }
  19. ),
  20. bulletEnemyObjects.end()
  21. );
  22.  
  23. std::cout << "after count: " << bulletEnemyObjects.size() << "\n";
  24.  
  25. for (Entity *p : bulletEnemyObjects)
  26. delete p;
  27. }
  28.  
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
before count: 6
after count: 4