题目描述
奶牛是乳用品种的黄牛,经过高度选育繁殖的优良品种,我国的奶牛主要以黑白花奶牛为主。该品种适应性强、分布范围广、产奶量高、耐粗饲。奶牛比较喜欢吃草。现在就请你统计一下一头奶牛获得了哪些质量的草吧。
输入
第一行,一个整数n(1<n≤50000)。
接下来有n行,每行一个字符串s和一个整数x(0≤x<100)。其中s表示奶牛的名称(不超过20个字符),x表示获得草的质量。一头奶牛可能获得不止一次草,但不超过十次。
接来下一行,一个整数q(q≤20000),表示q次询问。
在接下来q行,每行一个字符串s,表示询问的奶牛的名字。
输出
对于每个询问输出若干行,每一行一个整数,表示此奶牛获得的草的质量,按输入顺序输出。若奶牛一次草都没有获得,则不输出。
样例输入 Copy
3 a 2 a 1 b 29 3 b a c样例输出 Copy
29 2 1
用multimap建立键值对,一个key可以对应多个value,不可以用下标访问
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,v,i;
string k;
multimap<string,int> nu;
cin>>n;
for(i=0;i<n;i++)
{
cin>>k>>v;
nu.insert(make_pair(k,v));//输入键值对
}
cin>>m;
for(i=0;i<m;i++)
{
cin>>k;
for(auto iter=nu.begin();iter!=nu.end();iter++)
if(k==iter->first) cout<<iter->second<<"\n"; //遍历multimap
}
return 0;
}