首页 > 解决方案 > 如何检查 std::map 是否包含满足谓词的键

问题描述

在 C++ 中,假设您有一个std::map<int,int>- 您将如何使用stl算法/库来查找是否存在key满足某个谓词的 a,例如查找是否存在key一个奇数。到目前为止,我有:

auto variable = std::find_if(my_map.begin(),my_map.end(), [](const auto& element) -> bool {return element%2 == 1;})
if (variable == my_map.end() .....

但是如何确保谓词函数中的参数实际上是关键?

标签: c++c++17stdstdmap

解决方案


element.first您可以像这样访问密钥

const auto variable = std::find_if(my_map.begin(), my_map.end(), [](const auto& element) {
      return element.first % 2 == 1; 
   }
);

if (variable != my_map.end()
{
   // found
}

推荐阅读