gpt4 book ai didi

c++ - std::map,计算为真的值

转载 作者:IT老高 更新时间:2023-10-28 22:34:59 26 4
gpt4 key购买 nike

我有一张 map :

std::map<std::string, bool> all_triggers_didfire;

我填写它,最后想获得真实值的数量。以下代码有效:

int count_did_fire = std::count_if(
all_triggers_didfire.begin(),
all_triggers_didfire.end(),
[](std::pair<std::string, bool> p){return p.second;}
);

有没有比为此定义 lambda 表达式更简单的方法?

最佳答案

我会使用 std::set 而不是 std::map。它们在语义上是等效的,但使用 std::set 更容易。示例:

std::set<std::string> triggers_that_did_fire;
int count_did_fire = triggers_that_did_fire.size();

当您最初填充 triggers_that_did_fire 集时,您可以执行以下操作:

triggers_that_did_fire.insert(mystring); //equivalent to setting to "true" in your map
triggers_that_did_fire.remove(mystring); //equivalent to setting to "false"

关于c++ - std::map<T, bool>,计算为真的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647538/

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