[关闭]
@lychee123 2017-10-02T21:44:08.000000Z 字数 612 阅读 998

map套set的简单应用

STL


Power oj-2613: ACM-ICPC中国区教练群

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int t,i,j;
  6. char s[44];
  7. scanf("%d",&t);
  8. map<string,set<string> >mp;
  9. while(t--)
  10. {
  11. scanf("%s",s);
  12. if(s[0]=='H')
  13. {
  14. int ans=mp.size();
  15. printf("%d\n",ans);
  16. }
  17. else if(s[0]=='J')
  18. {
  19. scanf("%s",s);
  20. char *pos=strstr(s,"]");
  21. ///strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
  22. string school(s+1,pos);
  23. string name(pos+1,s+strlen(s));
  24. mp[school].insert(name);
  25. }
  26. else
  27. {
  28. scanf("%s",s);
  29. char *pos=strstr(s,"]");
  30. string school(s+1,pos);
  31. string name(pos+1,s+strlen(s));
  32. mp[school].erase(name);
  33. if(mp[school].size()==0)
  34. mp.erase(school);
  35. }
  36. }
  37. return 0;
  38. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注