应该是这个p迭代器出了问题
void find( string temp, string tar, set<string> dic, set<string>::iterator p, int step, int &min)
{
if( dif(temp,tar)==1 )
{
if( step<min || min==-1 ) min = step;
}
else
{
for( p; p!=dic.end(); p++)
{
if( dif(temp,*p)==1)
{
step++;
find(*p,tar,dic,p,step,min);
}
}
}
}