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

firstChar은 char이고 infix은 문자열 벡터입니다. firstChar에 벡터 [i]의 문자를 저장하려했으나 잘 진행되지 않았습니다.오류 : 'const value_type'을 'char'로 변환 할 수 없습니다.

두 가지 오류가 있습니다. 도움을 받으려는 경우 두 가지 오류가 있습니다.

오류 :이 하나에 '문자'에서 '표준 : __ cxx11 : 문자열'

precedenceHolder = precedence(firstChar); 

을 'firstChar을'변환 할 수 없습니다, 나는, 문자열로 firstChar 캐스팅 정적 시도했지만 방금 다른 많은 오류가 발생했습니다.

오류 : 's.LinkedStack :: 엿, 문자를().'변환 할 수 없습니다 '문자'에서 '표준 : __ cxx11 : 문자열'어떤 도움

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

감사합니다. 나는이 프로젝트를 폭파 할 것으로 예상하고있다.

편집 :

firstChar = infix[i]; 

firstChar 유형 char이다 명령에

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

문자열 벡터 같은 것은 없다, 아마 당신이 문자열의 벡터를 의미한다. 모호함과 혼란을 피하기 위해 코드에 나타나는 변수의 유형을 제공하십시오. – opetroch

+0

좋아. 내가 추가 했어. – Sam

답변

1

다음과 같이 infix[i] 인 반면 변수 이름이다 i 번째 string. 당신은 charstring를 할당 할 수 없습니다, 그러나 당신은 string에서 첫 번째 char를 검색 할 수 있습니다

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

나는 그것이 어떻게 작동하는지 정말로 이해하지 못한다. 그러나 그것은 당신에게 고마워한다. – Sam

+0

@Sam : 이해할 수없는 것은 무엇인가? 'infix'는'std :: string' 요소의'std :: vector'입니다. 'std :: vector'는 배열의 특정 원소에 접근하기위한 연산자 []를 가지고 있습니다. 'std :: string'은 문자열의 특정 문자에 접근하기위한 자체 연산자 인 []을가집니다. 'firstChar = infix [i] [0]'은 이렇게하는 것과 같습니다 :'string & s = infix [i]; firstChar = s [0];'(실제로 무엇을하는지는 firstChar = infix.operator [] (i) .operator [] (0);') –

+0

@Remy Lebeau ''infix [i] [0]'도 할 수 없으며 그것이 어떻게 작동 했는지도 모른다. – Sam

관련 문제