I'm trying to erase an enemies' health value when they are destroyed and I get the error "No instance of overloaded function "..." matches the argument list if I have the following:
upgradeHealth.erase(inner)
It seems to only accept something like this:
upgradeHealth.erase(upgradeHealth.begin())
I need the element at position inner to be erased so that it matches the enemy that just got destroyed. Here's the for loop:
for (outer = 0; outer < bullets.size(); outer++)
{
for (inner = 0; inner < upgrades.size(); inner++)
{
if (upgrades[inner]->HitTest(bullets[outer]))
{
upgradeHealth[inner] -= 1;
bullets.erase(outer--);
multiplier += 0.01;
hasHit = true;
multiplierTime = 0;
cout << upgradeHealth[inner] << endl;
if (upgradeHealth[inner] == 0)
upgradeHealth.erase(inner), upgrades.erase(inner), score += 100 * multiplier;
break;
}
}
}