本程序利用C++中的STL来实现,可能效率低。
#include<iostream>
#include<map>
#include<string>
#include<fstream>
#include<cassert>
#include<set>
#include<algorithm>
using namespace std;
int main()
{
multimap<string,string> word;
set<string>sig;
ifstream in("1.txt");
assert(in);
string s;
while(in>>s)
{
string change=s;
sort(change.begin(),change.end());
sig.insert(change);
word.insert(make_pair(change,s));
cout<<change<<" "<<s<<endl;
}
set<string>::iterator com;
multimap<string,string>::iterator pos;
for(pos=word.begin();pos!=word.end();pos++)
{
cout<<pos->first<<" "<<pos->second<<endl;
}
cout<<endl;
multimap<string,string>::iterator pot;
for(com=sig.begin();com!=sig.end();com++)
{
for(pot=word.begin();pot!=word.end();pot++)
{
if(*com==pot->first)
cout<<pot->second<<" ";
}
cout<<endl;
}
return 0;
}
本程序采用C++标准模板库(STL)进行单词处理,读取文本文件中的单词,通过排序并归类的方法找出具有相同字母组成的单词群组。
1267

被折叠的 条评论
为什么被折叠?



