gpt4 book ai didi

c++ - 从 vector c++中删除多个元素

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:04 29 4
gpt4 key购买 nike

这是一些代码,用于检查 2 个单位在相互攻击后是否被杀死,我传入了 vector 中的位置,但是当我删除一个 vector 时, vector 的大小发生了变化,因此第二个单位超出了范围。如何同时删除两者?

if ((MyHealth <= 0) && (EnemyHealth <= 0))
{
PlayerUnits.erase(PlayerUnits.begin() + MyUnit, PlayerUnits.begin() + EnemyUnit);
}
else if (MyHealth <= 0)
{
PlayerUnits.erase(PlayerUnits.begin() + MyUnit);
}
else if (EnemyHealth <= 0)
{
PlayerUnits.erase(PlayerUnits.begin() + EnemyUnit);
}

最佳答案

与其自己编写删除逻辑,不如使用 algorithm 中的 std::remove_if 进行更好的管理。根据您的编译器是否支持 C++11,谓词可以是 lambda 或命名函数。

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

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