包含min函数的栈

 1 class MinStack {
 2 public:
 3     /** initialize your data structure here. */
 4     stack<int> stk, stk_min; //定义
 5     MinStack() {
 6         
 7     }
 8     
 9     void push(int x) {
10         stk.push(x);
11         if (stk_min.size()) {
12             x = min(x, stk_min.top());
13         }
14         stk_min.push(x);
15         //cout << stk.top() << " " << stk_min.top() << endl;
16     }
17     
18     void pop() {
19         if (stk.size()) {
20             stk.pop();
21         }
22         if (stk_min.size()) {
23             stk_min.pop();
24         }
25     }
26     
27     int top() {
28          return stk.top();
29     }
30     
31     int getMin() {
32         return stk_min.top();
33     }
34 };
35 
36 /**
37  * Your MinStack object will be instantiated and called as such:
38  * MinStack obj = new MinStack();
39  * obj.push(x);
40  * obj.pop();
41  * int param_3 = obj.top();
42  * int param_4 = obj.getMin();
43  */
原文地址:https://www.cnblogs.com/fx1998/p/14036553.html