用c加加stl算法实现某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5∗10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
时间: 2024-02-22 22:57:21 浏览: 108
C语言程序设计-求一个n位自然数的各位数字的积;(n 是小于10的自然数).c
5星 · 资源好评率100%
这个问题可以使用map来解决。具体实现如下:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
map<int, int> cnt; // 统计每个数出现的次数
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
++cnt[x];
}
for (auto it : cnt) {
cout << it.first << " " << it.second << endl;
}
return 0;
}
```
首先,我们读入n,表示有n个自然数。然后使用map<int, int> cnt来统计每个数出现的次数。在读入每个自然数x时,我们调用++cnt[x]来增加x的出现次数。最后,我们遍历cnt,按照自然数从小到大的顺序输出统计结果。
阅读全文