栈template
2016-05-11 15:11
281 查看
#ifndef __INCLUDE_STACK_H__ #define __INCLUDE_STACK_H__ #include <iostream> #include <exception> #include <string.h> #include <stdexcept> #include <queue> using namespace std; template<typename T,typename CONT = deque<T> > class Stack { public: Stack(); ~Stack(); void Push(const T &elem); void Pop(); T & Top (); const T & Top() const; bool Empty() const ; private: CONT c_; }; template<typename T,typename CONT> Stack<T,CONT>::Stack() { } template<typename T,typename CONT> Stack<T,CONT>::~Stack() { } template<typename T,typename CONT> void Stack<T,CONT>::Push(const T &elem) { c_.push_back(elem); } template<typename T,typename CONT> void Stack<T,CONT>::Pop() { c_.pop_back(); } template<typename T,typename CONT> T & Stack<T,CONT>::Top() { return c_.back(); } template<typename T,typename CONT> const T &Stack<T,CONT>::Top() const { return c_.back(); } template<typename T,typename CONT> bool Stack<T,CONT>::Empty() const { return c_.empty(); } #endif //__INCLUDE_STACK_H__ #include <iostream> #include "Stack2.h" using namespace std; int main() { try { Stack<int,vector<int> > s; s.Push(1); s.Push(2); s.Push(3); s.Push(4); s.Push(5); while( !s.Empty()) { cout<<s.Top()<<endl; s.Pop(); } } catch (out_of_range &oor) { cout<<"Out ofRange error:"<<oor.what()<<endl; } return 0; }
相关文章推荐
- HDU 1162 Eddy's picture (最小生成树)
- [HTML5] Canvas绘制简单形状
- Android 数据存储之文件存储小记
- 欢迎使用CSDN-markdown编辑器
- 稀疏矩阵的转置
- nice架构演进
- Modelsim文件读取问题与matlab文件写入
- Freemarker模板获取HashMap重新封装类的问题(自定义类)
- QT中PRO文件写法的详细介绍
- 如何使用Markdown编辑器
- Java从后台重定向(redirect)到另一个项目的方法
- Jetty 的工作原理以及与 Tomcat 的比较
- LINQ(语言集成查询)
- Oracle删除所有表
- weblogic打补丁修复JAVA反序列化漏洞
- iOS动画 属性属性解析
- pgSQL substring(二):查询字段中除字母之外的字段
- Socket.io-client android 部分源码解析
- JQuery validate插件验证用户注册信息
- 快的打车架构