Design a Stack With Increment Operation

设计一个stack, 有一个函数可以增加stack中底部向上k个数.

这个一看就要用cpp做, 直接vector, 原因是可以random access, 有现成的pop_back()和pop(). 然后我刚知道v.size()返回不是int, 是unsigned int, 还不能直接用min比

class CustomStack {
public:
    vector<int> v;
    int max;
    CustomStack(int maxSize) {
        max = maxSize; 
    }
    
    void push(int x) {
        if(v.size() >= max)
            return;
        v.push_back(x);
    }
    
    int pop() {
        if(empty(v))
            return -1;
        int res = v.back();
        v.pop_back();
        return res;
    }
    
    void increment(int k, int val) {
        int vv = v.size();
        int c = min(k, vv);
        for(int i = 0; i < c; i++){
            v[i] += val;
        }
    }
};

/**
 * Your CustomStack object will be instantiated and called as such:
 * CustomStack* obj = new CustomStack(maxSize);
 * obj->push(x);
 * int param_2 = obj->pop();
 * obj->increment(k,val);
 */