雖然很早之前接觸過一小段時間這個,但是從來沒有仔細研究過,只知道很強大,很多功能都已經做好了,只需要拿過來用即可。
今天重新開始學習,先來一個簡單的map練習題(其中給出了C/C++的輸入輸出方法,因為之前一直使用流,所以C的輸入輸出有點薄弱,正好練習一下)
【人名查詢】
給定 n 個人名和 m 個查詢,每個查詢給定一個人名,對於每個查詢,輸出該查詢中給定的人名是否在之前給定的 n 個人名中出現過。
第一行為兩個整數n(1 <= n <= 10000), m(1 <= m <= 1000),之後n行每行一個人名,之後m行每行一個人名,表示每次查詢。人名為大小寫字母組成,最大長度為100。
對於每個查詢,輸出一行,若該查詢的人名出現過,輸出YES,否則輸出NO
5 2 ZhangSan ZhangEr ZhangYi LiSi LiWu ZhangLiu LiWu
NO YES
程序代碼:
#include<stdio.h>
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
int m,n;
map<string,bool> name;
string tmp;
//scanf("%d%d",&m,&n);
cin>>m>>n;
for(int i=0;i<m;i++)
{
//scanf("%s",&tmp);
cin>>tmp;
name[tmp]=true;
}
for(int i=0;i<n;i++)
{
//scanf("%s",&tmp);
cin>>tmp;
if(name[tmp])
//cout<<"YES"<<endl;//
printf("%s\n","YES\0");
else
//cout<<"NO"<<endl;//
printf("%s\n","NO\0");
}
//system("pause");
return 0;
}