gpt4 book ai didi

c++ - 从 for 循环中的 vector 中删除元素 - C++

转载 作者:行者123 更新时间:2023-11-28 06:32:30 28 4
gpt4 key购买 nike

我试图在敌人被摧毁时删除他们的健康值,如果我有以下内容,我会收到错误消息“没有重载函数实例”...”与参数列表匹配:

upgradeHealth.erase(inner)

它似乎只接受这样的东西:

upgradeHealth.erase(upgradeHealth.begin())

我需要删除 inner 位置的元素,以便它与刚刚被摧毁的敌人相匹配。这是 for 循环:

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;
}
}
}

最佳答案

std::vector类中只有两个重载成员函数erase

iterator erase(iterator position);
iterator erase(iterator first, iterator last);

关于c++ - 从 for 循环中的 vector 中删除元素 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297172/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com