Ananagrams STL vector map

Ananagrams STL vector map

Pay attention to the use of transform function

Chinese translation:
Insert picture description here

#include<iostream>
#include<algorithm>
#include<map>
#include<cctype>
#include<string>
#include<vector>

using namespace std;
map<string,int> world;


vector<string> ss;
string aa;

bool cmp(char xx,char yy)
{
    
    

	return xx<yy;
}

bool cmp_2(string aa,string bb)
{
    
    
	return aa<bb;
}



int main()
{
    
    
	
	while(cin>>aa && aa!="#")
	{
    
    
		ss.push_back(aa);
		
		transform(aa.begin(),aa.end(),aa.begin(),::tolower); //第四个传入op函数,加::表示C++的变小写函数,否则会报错
		sort(aa.begin(),aa.end(),cmp);
//		cout<<" "<<aa<<" ";
		
		if(world.find(aa)!=world.end())
		{
    
    
			world[aa]++;
		}else {
    
    
			world[aa]=1;
		}
		
	}
	
	sort(ss.begin(),ss.end(),cmp_2);
	
	string kk;
	
	for(int i=0;i<ss.size();i++)
	{
    
    
		kk=ss[i];
		transform(kk.begin(),kk.end(),kk.begin(),::tolower);
		sort(kk.begin(),kk.end(),cmp);
		if(world[kk]==1)
			cout<<ss[i]<<endl;
	}
	
	
	
	
	
	return 0;
}

Guess you like

Origin blog.csdn.net/weixin_45448563/article/details/113812710