程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C++標准模板庫之map使用基礎教程

C++標准模板庫之map使用基礎教程

編輯:關於C語言
 

雖然很早之前接觸過一小段時間這個,但是從來沒有仔細研究過,只知道很強大,很多功能都已經做好了,只需要拿過來用即可。

 

今天重新開始學習,先來一個簡單的map練習題(其中給出了C/C++的輸入輸出方法,因為之前一直使用流,所以C的輸入輸出有點薄弱,正好練習一下)

【人名查詢】

Description

給定 n 個人名和 m 個查詢,每個查詢給定一個人名,對於每個查詢,輸出該查詢中給定的人名是否在之前給定的 n 個人名中出現過。

Input

第一行為兩個整數n(1 <= n <= 10000), m(1 <= m <= 1000),之後n行每行一個人名,之後m行每行一個人名,表示每次查詢。人名為大小寫字母組成,最大長度為100。


C++標准模板庫之map使用基礎教程
 

Output

對於每個查詢,輸出一行,若該查詢的人名出現過,輸出YES,否則輸出NO
 

Sample Input

5 2
ZhangSan
ZhangEr
ZhangYi
LiSi
LiWu
ZhangLiu
LiWu

Sample Output

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;
}
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved