私のクラスでは、ループを使用してstd::vector
から要素を削除しようとしています。しかし、要素を削除しようとすると、エラーが発生し、解決方法がわかりません。私が手にエラーがある:ベクトルの要素を位置によって削除しますか?
タイプ「敵*」の右側のオペランドをとる(または全く許容される変換は存在しない)が見つかりませんエラー4エラーC2679:バイナリ「+」:なしオペレータは
void Enemy::UpdateEnemies(SDL_Renderer * render)
{
for (int i = enemies.size() - 1; i >= 0; i--)
{
enemies[i]->Update();
if (enemies[i]->Active == false)
{
// Receive the error here
enemies.erase(enemies.begin() + enemies.at(i));
}
}
if ((SDL_GetTicks()-prevSpawnTime)/1000.0f > enemySpawnTime)
{
prevSpawnTime = SDL_GetTicks();
//Add an anemy
AddEnemy(render);
}
}
は、私はあなたが 'enemies.erase(enemies.begin()+ i)を意味だと思う;' – DimChtz
@DimChtz笑気にしません。私は前にそれを試していました。なぜなら、私はアクティブな変数を宣言していますが、それを初期化していないからです。私の悪いが、ありがとう。 – RoundSquare