set 就是数学上的集合——每个元素最多只出现一次。和sort一样,自定义一个类型也可以构造set ,但是必须定义“小于”运算符。
例子:
输入一个文本,找出所有不同的单词(连续的字母序列),按字典从小到大排序,然后输出,不区分大小写。
#include<iostream>
#include<sstream>
#include<string>
#include<set>
using namespace std;
set<string>dict;//建立一个叫“dict”的string 集合
int main()
{
string s,buf;
while(cin>>s)
{
for(int i=0;i<s.size();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++)//iterator的意思是迭代器,类似于指针。
cout<<*it<<endl;
return 0;
}