Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Multi-Map"
https://onlinejudge.u-aizu.ac.jp/problems/ITP2_8_D
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #ITP2_8_D : Multi-Map
/* Aizu Online Judge in C++ #ITP2_8_D : Multi-Map https://onlinejudge.u-aizu.ac.jp/problems/ITP2_8_D 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using I=multimap<string,int>::iterator; int main(void){ int n; cin>>n; multimap<string,int> m; for(int i=0;i<n;i++){ int query; string s; cin>>query>>s; if(query==0){ int x; cin>>x; m.insert(make_pair(s,x)); }else if(query==1){ I a=m.lower_bound(s),b=m.upper_bound(s); for(I j=a;j!=b;j++){ cout<<j->second<<endl; } }else if(query==2){ m.erase(s); }else{ string t; cin>>t; I a=m.lower_bound(s),b=m.upper_bound(t); for(I j=a;j!=b;j++){ cout<<j->first<<" "<<j->second<<endl; } } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/