Как отметил @Igor Tandetnik, вы могли бы удалить элемент из вашего массива, итерируя с bulletVector.erase(bulletVector.begin() + y);
Есть множество из примеров по SO о этой теме , и я, вероятно, не буду объяснять это лучше.
Я бы хотел указать что-то еще в вашем коде. В этом разделе:
for (int y = 0; y < bulletVector.size(); y++) {
for (int x = 0; x < enemyVector.size(); x++) {
if (enemyVector.size() > 0 && bulletVector.size() > 0) {
if (enemyVector[x].checkColl(Bullet(bulletVector[y]))) {
bulletVector.erase(bulletVector.begin() + y);
enemyVector.erase(enemyVector.begin() + x);
}
}
}
}
где вы ищите столкновения, это предложение излишне:
if (enemyVector.size() > 0 && bulletVector.size() > 0) {
Если любой из обоих векторов пуст, по крайней мере один из циклов for
не будет повторять один цикл, поэтому вы можете удалить эту проверку и сохранить некоторые вычисления и строки кода.
В этот момент вы гарантируете, что оба вектора имеют по крайней мере 1 элемент внутри.