我编写了用于后缀评估的代码,直到在互联网上找到答案之前,我一直存在逻辑错误,但我不理解。
我被写了
if (!st.is_operator(symb))
st.push(symb);
然后我得到错误的结果,但是当我这样写
if (!st.is_operator(symb))
st.push(symb-'0');
为什么正确?
答案 0 :(得分:0)
看来symb
是一个包含数字的ASCII字符。通过减去其中的0
字符,您可以将数字转换回典型值。
'0' - '0' = 0
'6' - '0' = 6
'9' - '0' = 9