给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 C++
时间: 2024-03-08 21:47:45 浏览: 128
统计每个整数的出现次数
3星 · 编辑精心推荐
可以使用一个哈希表来记录每个整数出现的次数,然后将哈希表中的元素按出现次数从多到少排序输出即可。下面是代码示例:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(pair<int, int>& a, pair<int, int>& b) {
return a.second > b.second;
}
int main() {
int n;
cin >> n;
unordered_map<int, int> cnt;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
cnt[num]++;
}
vector<pair<int, int>> nums;
for (auto& p : cnt) {
nums.push_back(p);
}
sort(nums.begin(), nums.end(), cmp);
for (auto& p : nums) {
cout << p.first << " " << p.second << endl;
}
return 0;
}
```
其中,unordered_map是C++11引入的哈希表容器,可以用来快速统计每个整数出现的次数。vector是C++中的动态数组容器,用来存储哈希表中的元素。sort函数用来排序vector中的元素,cmp函数是自定义的比较函数,用来按出现次数从多到少排序。最后遍历排序后的vector输出即可。
阅读全文