c++ - 根据对象的成员函数从 vector 中删除对象

标签 c++ object vector

我在创建删除-删除习惯用法以根据对象函数的结果从 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()
    );

(live example)

关于c++ - 根据对象的成员函数从 vector 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240953/

相关文章:

javascript - 为什么无法通过实例化构造函数方法将对象插入数组?

c++ - 更新排序数据结构中的单个值

c++ - 是否可以在 C++ 中创建方法调用调度程序?

c++ - 输出精度高于 double

java - 如何将对象添加到对象数组列表中的数组列表?

javascript - 检查对象或数组中是否存在值

c++ - 权限被拒绝,正在运行 C++ 程序 bash

当大小固定但不是 constexpr 时,C++ 替代 std::array?

c++ - 如何在 C++ 中对长 vector 使用 std::sort()?

c++ - 在类中访问 vector