变位词的实现

本程序采用C++标准模板库(STL)进行单词处理,读取文本文件中的单词,通过排序并归类的方法找出具有相同字母组成的单词群组。
本程序利用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;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值