template<typename T>
//适配器类
class myStack
{
private:
vector<T> st; //向量对象
public:
myStack():st(0) //创建一个空栈
{
}
void push(T val) //入栈
{
st.push_back(val);
}
void pop() //出栈
{
if(!st.empty())
st.pop_back();
}
T& top() //取栈顶元素
{
return st.back();
}
size_t size() //返回栈的大小
{
return st.size();
}
bool empty() //判断栈是否为空
{
return st.empty();
}
};
int main()
{
myStack<int> ms;
ms.push(1);
ms.push(2);
ms.push(3);
cout<<ms.size()<<endl;//3
cout<<ms.top()<<endl;//3
ms.top()=4;
while(!ms.empty())
{
cout<<ms.top()<<ends;//4 2 1
ms.pop();
}
return 0;
}