题目:
map代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include<algorithm>
using namespace std;
int main()
{
map<string,int>mp;
map<string,int>::iterator iter;
int n, m, i, len, j;
char s[30];
while(scanf("%d",&n)!=EOF&&n)
{
scanf("%d",&m);
getchar();
mp.clear();//如果在外面定义的话要注意清空。
for(i=0;i<n;i++)
{
gets(s);
len=strlen(s);
for(j=0;j<len;j++)
{
s[j]=tolower(s[j]);//tolower函数的意义是将大写字母全换成小写字母
}
mp[s]++;
}
for(i=0;i<m;i++)
{
gets(s);
len=strlen(s);
for(j=0;j<len;j++)
{
s[j]=tolower(s[j]);
}
mp.erase(s);//erase函数的意义是在该容器中删除该元素
}
printf("%d\n",mp.size());//直接用size函数输出容器内元素的个数,不用遍历计数。
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <set>
#include<algorithm>
using namespace std;
int main()
{
int n, m, i, len, j;
char s[30];
while(scanf("%d",&n)!=EOF&&n)
{
scanf("%d",&m);
getchar();
set<string>mp;//声明set容器
set<string>::iterator iter;//声明set迭代器
for(i=0; i<n; i++)
{
gets(s);
len=strlen(s);
for(j=0; j<len; j++)
{
s[j]=tolower(s[j]);
}
mp.insert(s);//向set里加入一个元素
}
for(i=0; i<m; i++)
{
gets(s);
len=strlen(s);
for(j=0; j<len; j++)
{
s[j]=tolower(s[j]);
}
if(mp.count(s))//判断容器里是否存在该元素
mp.erase(s);//如果容器里存在该元素,则删除
}
printf("%d\n",mp.size());//直接输出容器剩余元素个数。
}
return 0;
}sicily 1194 Message Flood (STL的map和set应用练习),布布扣,bubuko.com
sicily 1194 Message Flood (STL的map和set应用练习)
原文:http://blog.csdn.net/scf0920/article/details/38369405