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

firstCharはchar、infixは文字列ベクトルです。ベクトル[i]の文字をfirstCharに格納しようとしていますが、それほどうまくいきません。エラー: 'const value_type'を 'char'に変換できません。

これらを手助けしたい場合は、他に2つのエラーがあります。

エラー:変換できませんでした 'firstChar' から '文字' から 'STD :: __ cxx11 :: string' はこの1で

precedenceHolder = precedence(firstChar); 

、私は文字列にfirstCharをキャストスタティックしようとしましたが、それはまさに他の多くのエラーを引き起こしました。

エラー:変換できませんでした 's.LinkedStackを:: PEEK、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]; 

firstCharを次のように変数名であるinfix[i]がi番目stringであるが、タイプcharです。あなたはcharstringを割り当てることはできませんが、stringから最初charを取得することができます。

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

私はそれがどのように動作するのか本当に理解していませんが、それは1つの笑をあなたに感謝しました – Sam

+0

@サム:何が理解していないですか? 'infix'は' std :: string'要素の 'std :: vector'です。 'std :: vector'には配列の特定の要素にアクセスするための' operator [] 'があります。 'std :: string'は文字列中の特定の文字にアクセスするための独自の' operator [] 'を持っています。 'firstChar = infix [i] [0]'は以下のようになります: 'string&s = infix [i]; (実際に何をしているのかは次のとおりです: 'firstChar = infix.operator [](i).operator [](0);') –

+0

@Remy Lebeau '' infix [i] [0] 'やそれがどのように働くかを行うことはできません。 – Sam

関連する問題