set就是数学上的集合,每个元素最多只出现一次
题意:输入一个文本,找出所有不同的单词,按字典序从小到大输出,单词不区分大小写
直接使用set保存单词即可
注意:输入时把所有的非字母的字符变为空格,然后利用stringstream得到各个单词
stringstream,我还了解的不太够
代码用到了set中的元素已经从小到大排列好的这一个性质
iterator是迭代器,类似于指针
代码:
//
// main.cpp
// set uva10815
//
// Created by Mr.Xue on 18/1/23.
// Copyright © 2018年 Mr.Xue. All rights reserved.
//
#include <iostream>
#include <string>
#include <set>
#include <sstream>
using namespace std;
set<string> dict;
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]=' ';
stringstream ss(s);
while(ss>>buf)
{
dict.insert(buf);
}
}
for(set<string>::iterator it =dict.begin();it!=dict.end();++it)
cout<<*it<<"\n";
return 0;
}