T609594 【map模板】数字频率统计
解题思路
这道题目要求统计一个整数数组中每个数字出现的频率,并按数字升序输出结果。由于数字的范围可能很大(-10^9到10^9),我们需要使用高效的数据结构来统计频率。
方法思路
-
使用map容器:利用C++的
map<int,int>来统计数字频率。map会自动按键(数字)升序排列,正好满足题目输出要求。 -
输入处理:读取数组长度n后,逐个读取数字并更新map中的计数。
-
输出处理:遍历map容器,按顺序输出每个数字及其出现次数。
代码注释
#include<bits/stdc++.h> using namespace std; int n; // 定义变量n表示数组长度 map<int,int> vis; // 使用map容器vis来统计数字出现频率 int main() { cin >> n; // 读取数组长度n for(int i = 1; i <= n; i++) // 循环读取n个数字 { int x; cin >> x; // 读取当前数字x vis[x]++; // 在map中对应的数字计数加1 } for(auto it : vis) // 使用范围for循环遍历map容器 cout << it.first << " " << it.second << endl; // 输出数字和出现次数 // it.first表示map的键(数字),it.second表示值(出现次数) return 0; }

浙公网安备 33010602011771号