思路:用map作为存储结构会更加方便
map数组是键值对,每个键对应一个唯一的值
键可以是int ,float ,double,char,string,……或者自己创建的类型
值的数据类型也是一样
代码:
#include<bits/stdc++.h>
using namespace std;
struct node {
int num;//数字
int cnt;//数字出现的次数
};
//排序比较函数
bool cmp(node n1, node n2) {
if (n1.cnt != n2.cnt) {
return n1.cnt > n2.cnt;
}
else
return n1.num<n2.num;
}
int main() {
int n;
while (cin >> n && n) {//如果n==0, while循环终止
map<int, int>nummap;//这里的map数组的键和值都是int类型,
vector<int>v1(n);//用来排序
vector<node>v2;
for (int i = 0; i < n; i++) {
cin >> v1[i];
nummap[v1[i]]++;
//如果map数组中已经有v1[i],v[i]对应的值++,否则先创建map[v[i]]再把map[v[i]]对应的值++
}
for (const auto& pair : nummap) {
v2.push_back({ pair.first, pair.second });
}
// 按字典序对单词进行排序
sort(v2.begin(), v2.end(), cmp);
cout << v2[0].num << endl;
}
}
用到map数组
大家可以自学map,以后的很多题目会用到