描述
使用STL中的multimap記錄用戶的所有電話號碼,yuyu想查詢用戶有多少個電話號碼,crq則想查詢時輸出所有的號碼。
部分代碼已經給出,請補充完整,提交時請勿包含已經給出的代碼。
int main() { multimap<string, string> sm; string name, phone; int n; cin>>n; while(n--) { cin>>name>>phone; sm.insert(make_pair(name, phone)); } YuYuSearch(sm); CrqSearch(sm); return 0; }
輸入
輸入數據第一行為n,表示有n條姓名和對應號碼記錄。
接下來有n行,每行一個姓名和電話號碼。
接下來一行為正整數m,下面的m行中每行為yuyu想查詢的姓名。
接下來一行為正整數k,下面的k行中每行為crq想查詢的姓名。
輸出
對於yuyu想查詢的姓名,輸出該姓名有多少個電話號碼,每行一個數。
對於crq想查詢的姓名,輸出該姓名所有的電話號碼(按輸入的順序),每行一個電話號碼,如果不存在則輸出None。
樣例輸入
3
crq 13512345678
yuyu 15988888888
crq 0576-12345678
3
crq
yuyu
kangkang
2
crq
yuyu
樣例輸出
2
1
0
13512345678
0576-12345678
15988888888
#include <iostream> #include <algorithm> #include <vector> #include <map> #include <string> using namespace std; void YuYuSearch(multimap<string, string> &sm) { int t; multimap<string, string>::iterator it; cin >> t; while (t--) { int i, k = 0; string ss; cin >> ss; for (it = sm.begin(); it !=sm.end(); it++) { if (it->first == ss) { k++; } } cout << k << endl; } } void CrqSearch(multimap<string, string> &sm) { int i; int t; multimap<string, string>::iterator it; cin >> t; while (t--) { int k = 0; string ss; cin >> ss; for (it = sm.begin(); it != sm.end(); it++) { if (it->first == ss) { cout << it->second << endl; k = 1; } } if (!k) cout << "None" << endl; } } int main() { multimap<string, string> sm; string name, phone; int n; cin>>n; while(n--) { cin>>name>>phone; sm.insert(make_pair(name, phone));//用insert函數插入multimap容器 } YuYuSearch(sm); CrqSearch(sm); return 0; }