C++数据结构与STL--栈的实现

来源:互联网 发布:软件授权码绑定 编辑:程序博客网 时间:2024/04/30 18:21

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;
}
原创粉丝点击