题目:
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