Удаление элемента из vector c++

Необходимо удалить i-Й элемент вектора, если выполнится условие, пытаюсь и не получается. Помогите пожалуйста; https://i.stack.imgur.com/ugO2w.png

    for (int i = 0; i < 99; i++) {
        if (buls[i].pos.x < buls[i].targetPos.x) buls[i].pos.x += 1;
        if (buls[i].pos.y < buls[i].targetPos.y) buls[i].pos.y += 1;
        if (buls[i].pos.x > buls[i].targetPos.x) buls[i].pos.x -= 1;
        if (buls[i].pos.y > buls[i].targetPos.y) buls[i].pos.y -= 1;
        if (buls[i].pos == buls[i].targetPos) {
            buls.erase(i); // здесь ошибка
        }
        buls[i].sprite.setPosition(buls[i].pos);
    }

Ответы (1 шт):

Автор решения: Izviniaus

Предложу вам свой способ удаления элемента из массива vector:

for (int i = 0; i < buls.size(); i++) {
    if (buls[i].pos == buls[i].targetPos) {
        for (int j = i; j < buls.size()-1; j++) {
            buls[j] = buls[j + 1];
        }
        i--; // необходимо, чтобы обработка остальной части массива продолжилось корректно
        buls.pop_back();
    }
}
→ Ссылка