STL之multimap


描述

使用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;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM