2017-10-09 36 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

相關問題