用关联容器set来做感觉比较方便,关联容器的insert成员向容器中添加一个元素或一个元素范围。由于map和set包含不重复的关键字,因此插入一个已存在的元素对容器没有任何影响。所以最后直接读set容器的大小即为不重复单词的数量。
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
string s,s1;
set<string> set1;
while (getline(cin, s))
{
if (s[0] == '#')
break;
for (int i = 0; i <= s.size() - 1; i++)
{
if (s[i] != ' ')
s1 = s1 + s[i];
if ((s[i] == ' ' &&!s1.empty())||(i==s.size()-1&&!s1.empty()))
{
set1.insert(s1);
s1.clear();
}
}
cout << set1.size() << endl;
set1.clear();
}
return 0;
}