用栈求后缀表达式的值

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
       int n=tokens.size();
       //用一个栈来求后缀表达式
       stack<int>stack1;
       int t1,t2;
       //遍历整个后缀表达式
       //如果是+-*/则将栈顶的两个元素弹出,求出对应的值后将该值压入栈中,注意顺序,+和*顺序换一下没有区别,-/交换位置后就有区别
       for(int i=0;i<n;i++){
        if(tokens[i]=="+"){
            t1=stack1.top();
            stack1.pop();
            t2=stack1.top();
            stack1.pop();
            stack1.push(t1+t2);
        }else if(tokens[i]=="-"){
            t1=stack1.top();
            stack1.pop();
            t2=stack1.top();
            stack1.pop();
            stack1.push(t2-t1);
        }else if(tokens[i]=="*"){
             t1=stack1.top();
            stack1.pop();
            t2=stack1.top();
            stack1.pop();
            stack1.push(t1*t2);
        }else if(tokens[i]=="/"){
             t1=stack1.top();
            stack1.pop();
            t2=stack1.top();
            stack1.pop();
            stack1.push(t2/t1);
        }else{
            //stoi函数可以将对应的字符串转化为数字
            stack1.push(stoi(tokens[i]));
        }
       }
       return stack1.top();
    }
};