skip to content
developertype

snippets

filter:96 snippets
cpp-gen-minstack·cpp·general
#include <stack>

template <typename T>
class MinStack {
    std::stack<T> data, mins;
public:
    void push(T val) {
        data.push(val);
        if (mins.empty() || val <= mins.top()) mins.push(val);
    }
    void pop() {
        if (data.top() == mins.top()) mins.pop();
        data.pop();
    }
    T top() { return data.top(); }
    T getMin() { return mins.top(); }
};