感觉问题好像出在初始化上了,但不知道具体怎么改
#include <iostream>
#include <map>
using namespace std;
string s,f;
char c;
map<string,string>fa;
map<string,int>vis;
string Find(string str){
if(fa[str]==str) return str;
return fa[str]=Find(fa[str]);
}
int main(){
while(c!='$'){
cin>>c>>s;
if(vis[s]==0) fa[s]=s,vis[s]=1;
if(c=='#') f=s;
else if(c=='+') fa[s]=Find(f);
else if(c=='?') cout<<s<<' '<<fa[s]<<'\n';
}
return 0;
}