标准程序库中带异常处理的栈实现

来源:互联网 发布:js 刷新当前界面 编辑:程序博客网 时间:2024/04/29 16:50
#include <iostream>#include <exception>#include <deque>using namespace std;class Stack{private:deque<int> c;public:class ReadEmptyStack : public exception{public:virtual const char *what() const throw(){return "read empty stack";}};int size() const{return c.size();}void push(const int& elem){c.push_back(elem);}int pop(){if (c.empty())throw ReadEmptyStack();int temp = c.back();c.pop_back();return temp;}int &top(){if (c.empty())throw ReadEmptyStack();return c.back();}};int main(){try{Stack st;st.push(1);st.push(2);st.push(3);cout<<st.pop()<<" ";cout<<st.pop()<<" ";st.top() = 77;st.push(4);st.push(5);st.pop();cout<<st.pop()<<" ";cout<<st.pop()<<endl;cout<<st.pop()<<endl;}catch(const exception& e){cerr << "Exception:" <<e.what() <<endl;}}

0 0
原创粉丝点击