Sınıfımda, for
döngüsünü kullanarak std::vector
öğesinden bir öğeyi kaldırmaya çalışıyorum. Ancak, elemanı kaldırmaya çalıştığımda bir hata alıyorum ve nasıl çözeceğimi tam olarak bilmiyorum. Elde hatadır:Öğeleri vektörü konumuna göre silinsin mi?
olan bulunduHata 4 hata C2679: ikili '+': bir operatörün * Düşman 'tipte bir sağ işlenen alır (ya da kabul edilebilir bir dönüşüm vardır)
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);
}
}
Sana 'enemies.erase (enemies.begin() + i) anlamına düşünüyorum;' – DimChtz
@DimChtz Lol aldırma. Bunu daha önce denedim ve çalışmamasının nedeni, aktif değişkeni ilan ettiğimden, ancak hiçbir zaman başlatmamış olmadı. Benim kötü ama teşekkürler. – RoundSquare