gpt4 book ai didi

c++ - 将 std::any_of、std::all_of、std::none_of 等与 std::map 一起使用

转载 作者:行者123 更新时间:2023-12-01 22:20:58 29 4
gpt4 key购买 nike

std::unordered_map<std::string, bool> str_bool_map = {
{"a", true},
{"b", false},
{"c", true}
};

我们可以在此映射上使用 std::any_of 来查看其任何值为 false 吗?或者它的任何一个键是 "d"

同样,我们可以在这张 map 上使用 std::all_ofstd::none_of 吗?

最佳答案

最简单的解决方案是使用 lambda:

std::unordered_map<std::string, bool> str_bool_map = 
{{"a", true}, {"b", false}, {"c", true}};

bool f = std::any_of(str_bool_map.begin(), str_bool_map.end(),
[](const auto& p) { return !p.second; });

这里是 lambda 表达式 [](...) { ... }是一个一元谓词,需要 const auto& p并进行测试。 const auto&将被推导为const std::pair<const std::string, bool>& (= std::unordered_map<...>::value_type ),这就是您使用 .second 的原因测试 bool一对的一部分。使用.first成员来测试元素的键。

关于c++ - 将 std::any_of、std::all_of、std::none_of 等与 std::map 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624454/

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