스택 배열로 후위표기식 계산

후위 표기식을 이용해서
35+ 입력하면 8이 출력되는 프로그램입니다.
top 함수는 필요없긴 한데 들어가있습니다.

35+를 입력하면 -5가 출력되는데
코드에서 문제점을 못찾겠습니다.
도움 부탁드립니다.

0 < str.at(i) - '0' < 10…?

  1. usung namespace std 제발 빼주세요.

  2. 스택 구현 연습 많이 하신것 같으니, 라이브러리를 사용해 주세요(std::stack, std::vector).

  3. std::basic_string::sizeconst라, 배열을 순회하는 도중 원소를 수정하지 않는한 한번만 호출됩니다. 즉, int size로 빼실 필요가 없습니다.

  4. 이 경우 문자열의 인덱스가 항상 유효한 범위 이내임이 보장되기 때문에 std::basic_string::at 대신 []를 사용해 주세요.

  5. 사실, 3번과 4번으로 코드를 수정하는 것보다는 범위 기반 for문을 사용하는 것이 좋습니다. 범위를 헷갈릴 일도 없고요.

  6. `(백쿼트) 3개로 코드를 감싸서 올려주세요. 이미지로 올리시면 보기도 불편하고, 복사할 수도 없습니다.