我在创建删除-删除习惯用法以根据对象函数的结果从 vector 中删除对象时遇到问题。
例如,我这里有一个 vector :
std::vector<Entity*> bulletEnemyObjects;
存储类型为 Entity 的对象,每个对象都有一个变量
bool alive;
被对象类中的函数访问
bool Entity::GetAlive()
{
return alive;
}
我需要遍历 vector ,并删除所有返回 false 到 GetAlive() 函数的对象。这里有什么帮助吗?
最佳答案
删除
-remove_if
。
bulletEnemyObjects.erase(
std::remove_if(bulletEnemyObjects.begin(), bulletEnemyObjects.end(),
[](Entity *p) { return !p->GetAlive(); }
),
bulletEnemyObjects.end()
);
关于c++ - 根据对象的成员函数从 vector 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240953/