#include <iostream> #include <string> using namespace std; template<typename T> class StackWithMin { stack data; stack minStack; void push(const T& val) { data.push(val); if (minStack.size() == 0 || val < minStack.top()) { minStack.push(val); } else { minStack.push(minStack.top()); } } void pop() { if (data.size() == 0) { return; } data.pop(); minStack.pop(); } T& min() { if (minStack.size() == 0) { return; } return minStack.top(); } };
原文:https://www.cnblogs.com/dongma/p/13921793.html