T609594 【map模板】数字频率统计

解题思路

这道题目要求统计一个整数数组中每个数字出现的频率,并按数字升序输出结果。由于数字的范围可能很大(-10^9到10^9),我们需要使用高效的数据结构来统计频率。

方法思路

  1. 使用map容器:利用C++的map<int,int>来统计数字频率。map会自动按键(数字)升序排列,正好满足题目输出要求。

  2. 输入处理:读取数组长度n后,逐个读取数字并更新map中的计数。

  3. 输出处理:遍历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;
}

 

posted @ 2025-05-20 17:24  CRt0729  阅读(34)  评论(0)    收藏  举报