#include <deque>
#include <type_traits>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pushV int整型vector 
     * @param popV int整型vector 
     * @return bool布尔型
     */
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
        // write code here
        //考虑双指针一个指向压栈,一个指向出栈;
        int lpush = pushV.size();
        //int lpop = popV.size();//2个长度相等的
        int a = 0;int b = 0 ;
        deque<int> s;//给个栈
        s.push_back(pushV[a]);
        while(a<lpush&&b<lpush){//遍历条件是2个都要在长度里面
            
            if(!s.empty()&&s.back()==popV[b]){
                s.pop_back();
                b++;
               // a++;
            }
            else{
                a++;
                s.push_back(pushV[a]);
            }
            
           // cout<<s.back()<<a<<endl;;
            

        }
     

        
        return s.empty();
    }
};

需要考虑到空栈不能比大小,不然会越界报错

if(!s.empty()&&s.back()==popV[b])