/*
21:> 包含min的栈
*/
#include <stack>
template<class T>
class MinStack
{
public:
void m_push(const T& val)
{
m_data.push(val);
if (m_min.size() == 0 || val < m_min.top())
m_min.push(val);
else
m_min.push(m_min.top());
}
void m_pop()
{
if (m_data.size() <= 0 || m_min.size() <= 0)
return;
m_min.pop();
m_data.pop();
}
T& min()
{
if (m_data.size() <= 0 || m_min.size() <= 0)
exit(1);
return m_min.top();
}
private:
stack<T> m_data;
stack<T> m_min;
};
包含min的栈
最新推荐文章于 2024-02-16 21:20:12 发布