编译器给我一个错误:“从‘诠释’到‘为const char *’转换无效的违规行为:错误:从“诠释”到“为const char *”无效转换
change[j]=oper[integer(A[i][j]+A[i][j+1])][0];
哪里是我的麻烦?
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
string mas[10000000],oper[100];
int integer(string a)
{
int numb;
istringstream(a)>>numb;
return numb;
}
int main()
{
int l,k,i,d=0;
string temp1,temp2,s,t,ans="-1",change;
vector<string> A,B;
for (i=0;i<10000000;++i)
mas[i]="-1";
for (i=0;i<100;++i)
oper[i]="-1";
cin>>l>>s>>t>>k;
for (i=0;i<k;++i)
{
cin>>temp1>>temp2;
oper[integer(temp1)]=temp2;
}
A.push_back(s);
while(A.size()>0)
{
if (ans!="-1")
break;
for (i=0;i<A.size();++i)
{
if (ans!="-1")
break;
for (int j=0;j<l-1;++j)
{
change=A[i];
change[j]=oper[integer(A[i][j]+A[i][j+1])][0];
change[j+1]=oper[integer(A[i][j]+A[i][j+1])][1];
if(oper[integer(A[i][j]+A[i][j+1])]!="-1" && mas[integer(change)]!="-1")
{
if (mas[integer(change)]==t)
{
ans=d;
break;
}
mas[integer(change)]=d+1;
B.push_back(change);
}
}
}
A=B;
B.clear();
}
cout<<ans<<endl;;
return 0;
}
添加两个字符给出一个整数。 'integer'接受一个字符串。 – chris
我的天啊,满满的括号! –
@ dyp的评论是指原始标题;从那以后它被修改了。 –