简单题,就是想练一下muptimap等STL的用法
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<string>
using namespace std;
const string end="XXXXXX";
int main()
{
multimap<string,string> dic;
string k_str,v_str;
while(cin>>k_str)
{
if(k_str==end)break;
v_str=k_str;
sort(k_str.begin(),k_str.end());
dic.insert(pair<string,string>(k_str,v_str));
}
vector<string>v ;
while(cin>>k_str){
if(k_str==end)break;
sort(k_str.begin(),k_str.end());
multimap<string, string>::iterator iterBeg = dic.lower_bound(k_str);
multimap<string, string>::iterator iterEnd = dic.upper_bound(k_str);
for(;iterBeg != iterEnd;iterBeg++)
{
v.push_back(iterBeg->second);
}
sort(v.begin(),v.end());
if(v.empty()) cout<<"NOT A VALID WORD"<<endl;
for(vector<string>::size_type i = 0; i != v.size(); ++i)
cout<<v[i]<<endl;
cout<<"******"<<endl;
v.clear();
}
return 0;
}