c++ - 如何计算地图中重复元素/值的数量?
问题描述
例如,我怎样才能找到“59”年龄的数量?也是“64”?输出中不需要名称,我只需要年龄和重复次数。从这里开始,它是 64->2 和 53->2 次。(此外,没有确定行数的整数。)
Name Age
{ XzbitYmay 64
Bruce Watson 53
Nim George 53
Lee Harry 64
Nim George 59 }
解决方案
这是一个简单的解决方案:
#include <iostream>
#include <map>
#include <algorithm>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<int, size_t> counts;
std::map<std::string, int> m = {
{"XzbitYmay", 64},
{"Bruce Watson", 53},
{"Nim George", 53},
{"Lee Harry", 64},
{"Nim George", 59 }};
for(const auto& kvp : m) {
counts[kvp.second]++;
}
for(const auto& kvp: counts) {
if(kvp.second > 0)
std::cout << kvp.first << "->" << kvp.second << '\n';
}
return 0;
}
现场示例在这里。
推荐阅读
- python - python中的多处理模块-如何将类传递给进程?
- mongodb - MongoDb $where 不接受 javascript 函数
- c# - Catia V6 - 转义用户选择框会导致错误
- javascript - 谷歌地图标记上的选择选项不起作用
- php - “无法写入缓存目录”(Symfony)
- c# - 如何在调试模式下执行 C# 编码的 ui 项目时禁用截屏
- python - XML Python - 到 SQL
- django - 如何在 Windows 中退出“python manage.py runserver”
- dart - 在 ListView.builder 中从多个来源获取数据 - Flutter
- htmlcleaner - 如何在 Java 中设置 `invalidAttributeNamePrefix` 值?