#include<stack>
#include<iostream>
using namespace std;
class MyStack{
public:
void push(int a)
{
if (MinStack.empty()){
MinStack.push(a);
}
else if (MinStack.top() >= a){
MinStack.push(a);
}
DataStack.push(a);
}
int pop(){
int value = DataStack.top();
DataStack.pop();
if (value == MinStack.top()){
MinStack.pop();
}
return value;
}
int min_num()
{
return MinStack.top();
//MinStack.pop();
}
private:
stack<int> DataStack;
stack<int> MinStack;
};
int main()
{
MyStack s1;
int a[6] = { 3, 4, 5, 1, 2, 1 };
for (int i = 0; i < 6; i++){
s1.push(a[i]);
cout << s1.min_num() << endl;//当前栈中最小值
}
system("pause");
return 0;
}