2017-10-09 128 views
2
firstChar = infix[i]; 

firstChar是一个字符,而infix是一个字符串向量。尝试从矢量[i]中存储字符firstChar,但它不太好。错误:无法将'const value_type'转换为'char'

如果您想要帮助解决这些问题,还有两个其他错误。

错误:无法从“字符”转换“firstChar”到“的std :: __ cxx11 ::字符串”

precedenceHolder = precedence(firstChar); 

就这一个,我已经试过静态铸造firstChar为字符串,但这只是造成了很多其他错误。

错误:无法从 '字符' 转换 's.LinkedStack ::偷看,CHAR()' 到 '的std :: __ cxx11 ::字符串'

while (!s.isEmpty() && s.peek() != '(' && precedenceHolder <= precedence(s.peek())) 

感谢您的帮助。我期待着轰炸这个项目。

编辑:变量名如下

LinkedStack<char> s; 
int i = 0; 
int k = 0; 
char firstChar; 
vector<string> postFix; 
int precedenceHolder; 
+0

有没有这样的事情串矢量,可能你的意思是一个字符串矢量。请提供它们在代码中出现的变量类型,以避免混淆和混淆。 – opetroch

+0

好吧我加了他们 – Sam

回答

1

在命令

firstChar = infix[i]; 

firstCharchar型的,而infix[i]是第i个string。你无法分配stringchar,但你可以检索来自string第一char

firstChar = infix[i][0]; 
+0

我真的不明白那是怎么工作的,但是它修复了一个笑声谢谢 – Sam

+0

@Sam:有什么不明白的地方? 'infix'是'std :: string'元素的'std :: vector'。 'std :: vector'有一个'operator []'来访问数组中的特定元素。 'std :: string'有它自己的'operator []'来访问字符串中的特定字符。 'firstChar = infix [i] [0]'相当于这样做:'string&s = infix [i]; firstChar = s [0];'(它实际做的是这样的:'firstChar = infix.operator [](i).operator [](0);') –

+0

@Remy Lebeau我只是不知道你可以做'infix [i] [0]',也不管它如何工作。 – Sam

相关问题