读书人

新手问下stl的有关问题

发布时间: 2013-07-25 16:22:17 作者: rapoo

新手问下stl的问题
# include <iostream>
# include <string>
# include <vector>
# include <set>
# include <map>
# include <iterator>
# include <algorithm>
# include <cctype>
using namespace std;
//把字母转成小写
char tolowers(char ch){return tolower(ch);}
string & Tolower(string & t);
void display(const string & s);
int main ()
{
vector<string> words;
string input;
while(cin >> input && input != "quit")
words.push_back(input);
cout<<"输出:";
for_each(words.begin(),words.end(),display);
cout<<endl;
set<string>wordset;
transform(words.begin(),words.end(),insert_iterator<set<string>>(wordset,wordset.begin()),Tolower);
cout<<"输出";
for_each(wordset.begin(),wordset.end(),display);
cout<<endl;
map <string ,int> wordmap;
set<string>::iterator si;
for(si = wordset.begin();si != wordset.end();si++)
wordmap[*si] = count(words.begin(),words.end(),*si);
for(si = wordset.begin();si != wordset.end();si++)
cout<<*si<<":"<<wordmap[*si]<<endl;

}
void display(const string & s)
{
cout<< s<<" ";
}
string & Tolower(string & t)
{
transform(t.begin(),t.end(),t.begin(),tolowers);
return t;
}
[解决办法]
transform(words.begin(),words.end(),insert_iterator<set<string> >(wordset,wordset.begin()),Tolower);

读书人网 >C++

热点推荐