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

firstChar est un char, et infix est un vecteur de chaîne. Essayer de stocker le caractère de vecteur [i] dans firstChar, mais ça ne va pas si bien.Erreur: Impossible de convertir 'const value_type' à 'char'

Il y a aussi deux autres erreurs si vous voulez aider.

Erreur: Impossible de convertir 'àPartirDe' de 'char' à 'std :: __ cxx11 :: string'

precedenceHolder = precedence(firstChar); 

Sur celui-ci, je l'ai essayé statique couler la àPartirDe à une chaîne, mais cela a juste causé beaucoup d'autres erreurs.

Erreur: Impossible de convertir 's.LinkedStack :: coup d'oeil, char().' De 'char' à 'std :: __ cxx11 :: string'

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

Merci pour toute aide. Je m'attends à bombarder ce projet.

Edit: noms de variables sont les suivantes

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

Il n'y a pas une telle chose comme vecteur de chaîne, probablement vous dire un vecteur de chaînes. Veuillez fournir les types de variables tels qu'ils apparaissent dans le code pour éviter les ambiguïtés et les confusions. – opetroch

+0

D'accord je les ai ajouté – Sam

Répondre

1

Dans la commande

firstChar = infix[i]; 

firstChar est de type char, alors que infix[i] est le i-ème string. Vous ne pouvez pas attribuer un string à un char, mais vous pouvez récupérer la première char du string:

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

Je ne comprends pas vraiment comment cela fonctionne, mais il a fixé un lol merci – Sam

+0

@Sam: ce qui est là pour ne pas comprendre? 'infix' est un élément' std :: vector' des éléments 'std :: string'. 'std :: vector' a un' operator [] 'pour accéder à un élément spécifique du tableau. 'std :: string' a son propre' operator [] 'pour accéder à un caractère spécifique de la chaîne. 'firstChar = infix [i] [0]' équivaut à faire ceci: 'string & s = infix [i]; firstChar = s [0]; '(ce qu'il fait réellement est ceci:' firstChar = infix.operator [] (i) .operator [] (0); ') –

+0

@Remy Lebeau Je ne savais pas que vous pourrait faire 'infix [i] [0]' ni comment cela a fonctionné. – Sam