class MinStack { private: stack s1; stack s2; public: void push(int x) { s1.push(x); if (s2.empty() || x <= getMin()) s2.push(x); } void pop() { //在这里判断一下就是s2最小栈 二个栈中栈顶元素相同最小栈中的元素才会出栈; if (s1.top() == getMin()) s2.pop(); s1.pop(); } int top() { return s1.top(); } int getMin() { return s2.top(); } };