Andy's First Dictionary---set,stringstream

https://cn.vjudge.net/contest/177260#problem/C

stringstream :https://blog.csdn.net/xw20084898/article/details/21939811

学习:http://www.cnblogs.com/yjlblog/p/6947747.html

注意set的*

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<stdlib.h>
 6 #include<algorithm>
 7 #include<queue>
 8 #include<vector>
 9 #include<string>
10 #include<set>
11 #include<cctype>
12 #include<sstream>
13 #define mem(a) memset(a,0,sizeof(a))
14 #define LL long long
15 using namespace std;
16 const long long  N=1e9+5;
17 set<string>ans;
18 int main()
19 {
20   //用set,元素只能出现一次,并且插入可以从小到大排序
21    string s,tmp;
22    while(cin>>s)
23    {
24        for(size_t i=0;i<s.size();i++) //size_t一般用来表示一种计数
25        if(isalpha(s[i])) //小写字母返回2,大写字母返回1
26        s[i]=tolower(s[i]); //变小写
27        else s[i]=' ';
28      stringstream ss(s);
29      while(ss>>tmp) ans.insert(tmp); //平衡树?
30    }
31    for(set<string>::iterator it=ans.begin();it!=ans.end();it++)
32    {
33        cout<<*it<<endl;
34 /*set不是数组 只能通过迭代器(iterator)把里面的元素倒出来
35 迭代器相当于是指针 扫描的是地址 因此输出的时候需要用*variation*/
36    }
37     return 0;
38 }
39 //输出时在空行输入 ctrl+z+回车
View Code

猜你喜欢

转载自www.cnblogs.com/XXrll/p/10295421.html
今日推荐