分析:集合set的使用
知识点:
1.set 就是数学上的集合,每个元素只能出现一次;
2.这里利用了set中元素已经从小到大排好序这一性质,用一个for循环就可以遍历所有元素
3.关于stringstream,是iostream的继承,ss(s) 是把ss初始化为s的值;
4.iterator的意思是迭代器,是STL中的重要概念,类似于指针。
代码:
#include<iostream>
#include<string>
#include<set>
#include<sstream>
using namespace std;
//set 就是数学上的集合,每个元素只能出现一次,这里定义了一个类型为string 的集合
set<string> dict ; //string 集合·
int main()
{
string s, buf;
while(cin >> s)
{
//读取字母,并把所有的大写字母转换成小写字母
for(int i = 0; i < s.length(); i++)
{
if(isalpha(s[i]))
s[i] = tolower(s[i]);
else s[i] = ' ';
}
//定义string流并且把它初始化为s的值
stringstream ss(s);
while(ss >> buf) dict.insert(buf); //在集合中加入新的单词
}
//这里利用了set中元素已经从小到大排好序这一性质,用一个for循环就可以遍历所有元素
for(set<string>::iterator it = dict.begin(); it != dict.end(); ++it)
cout<<*it << endl;
return 0;
}