如何计算C ++映射中给定VALUE(!)的数量?

McM*_*ini 1 c++ dictionary ios

我在其他iOS / ObjC项目中确实有一个cpp类。它使用以下地图:

std::map <std::string, int> testMap;
Run Code Online (Sandbox Code Playgroud)

我确实知道我可以通过testMap.count在该映射中“计数”给定键的出现次数。但是,如何计算该图中给定值的出现次数?

例如,假设具有以下地图:

<Anna, 5>
<Brian, 4>
<Cesar, 4>
<Danny, 3>
Run Code Online (Sandbox Code Playgroud)

->因此,如果我寻找值“ 4”的数量,该函数应返回2,分别为值“ 5”和“ 3”,则每个函数应返回1,否则返回0 ...

提前致谢!

Win*_*ute 5

最简单的方法可能是使用std::count_if适当的lambda:

int value = 4; // or something else

std::count_if(std::begin(testMap),
              std::end  (testMap),
              [value](std::pair<std::string, int> const &p) {
                return p.second == value;
              });
Run Code Online (Sandbox Code Playgroud)

这只是遍历地图并计算了所有适合谓词的元素。