#include "iostream"
#include "map"
using namespace std;
int main(){
int num;
int score;
cin >> num;
map<int,int> m;
for (int i = 0; i < num; ++i) {
int t ;
cin >> t;
m[t]++;
}
cin >> num;
int r[num];
for (int i = 0; i < num; ++i) {
cin >> score;
r[i] = m[score];
}
for (int i = 0; i < num-1; ++i) {
cout << r[i] << " ";
}
cout << r[num-1];
}
整体思路: 用map<int,int>,key是分数,value是同分的人数
1. 创建map<int,int>后,循环从键盘读取分数,这里巧妙的运用了map的[]下表运算符。
2. m[t]++这一行代码,实际上完成了2步操作,将t作为key插入到map中,同时取出m[t]的value并且+1
3. 创建一个int数组,从键盘读取目标score,通过m[score]取得对应的value