map转换为map 计算value的个数
时间: 2024-01-23 15:03:35 浏览: 37
可以使用`std::count_if`算法来计算`map`中特定值的个数。假设我们有一个`std::map<K,V>`,我们想要计算值为`target_value`的元素个数,可以使用以下代码:
```c++
#include <map>
#include <algorithm>
int main() {
std::map<int, int> my_map {{1, 2}, {2, 3}, {3, 2}, {4, 5}, {5, 2}};
int target_value = 2;
int count = std::count_if(my_map.begin(), my_map.end(),
[target_value](const std::pair<int, int>& p){ return p.second == target_value; });
std::cout << "The number of elements with value " << target_value << " is: " << count << std::endl;
return 0;
}
```
输出结果为:
```
The number of elements with value 2 is: 3
```
上述代码中,`count_if`算法接受一个迭代器范围和一个谓词函数,返回满足谓词函数的元素个数。在本例中,我们使用一个lambda表达式作为谓词函数,判断`map`中每个元素的值是否等于`target_value`,如果是则返回`true`,否则返回`false`。
阅读全文