设置一个辅助栈,与元素栈同步插入与删除;一开始向辅助栈中插入一个很大的值,在向元素栈中插入数据的同时,也向辅助栈中插入,但插入的是该元素与辅助栈中栈顶元素两者的较小值,这样就形成了一种一一对应的关系,出栈的时候,两个栈一同出,任意一个时刻,栈内元素的最小值就存储在辅助栈的栈顶元素中。
//两个栈是一一对应的,每个元素在辅助栈中对应的都是此时栈中最小的元素值
class MinStack{
private:
stack<int> x_stack;
stack<int> min_stack;//辅助栈