类模板非类型形参实现Stack
来源:互联网 发布:机器人声音制作软件 编辑:程序博客网 时间:2024/05/16 12:13
原创地址:http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.html
TemplateDemo.h
#include <iostream>using namespace std;#ifndef TEMPLATE_DEMO_HXX#define TEMPLATE_DEMO_HXXtemplate<class T,int MAXSIZE> class Stack{private: T elems[MAXSIZE]; int numElems;public: Stack(); void push(T const&); void pop(); T top() const; bool empty() const{ return numElems == 0; } bool full() const{ return numElems == MAXSIZE; }};template<class T,int MAXSIZE>Stack<T,MAXSIZE>::Stack():numElems(0){}template<class T,int MAXSIZE>void Stack<T,MAXSIZE>::push(T const& elem){ if(numElems == MAXSIZE){ cout << "stack is pull" << endl; } elems[numElems++] = elem;}template<class T,int MAXSIZE>void Stack<T,MAXSIZE>::pop(){ if(numElems <= 0){ cout << "stack is empty" << endl; } --numElems;}template<class T,int MAXSIZE>T Stack<T,MAXSIZE>::top() const{ if(numElems <= 0){ cout << "stack is empty" << endl; } return elems[numElems-1];}#endif // TEMPLATH_DEMO_HXX
TemplateDemo.cpp
#include <iostream>#include<string>#include<cstdlib>#include "TemplateDemo.h"using namespace std;int main(){ Stack<int,20> S20; Stack<int,40> S40; Stack<string,40> Str40; S20.push(7); cout << S20.top() << endl; Str40.push("Hello"); cout << Str40.top() << endl;}
阅读全文
0 0
- 类模板非类型形参实现Stack
- 类模板的非类型形参
- 模板非类型形参
- 模板非类型形参
- 非类型模板形参
- 模板类实现stack
- 非类型形参的模板实参
- 非类型形参的模板实参
- 非类型模板类参数
- 模板非类型形参的详细阐述
- 自己实现的stack模板类
- C++:栈(stack)的模板类实现
- 模板Stack实现
- 模板实现简易stack
- C++模板实现Stack
- 利用模板实现Stack
- 非类型模板函数
- 模板非类型参数
- 利用注解实现简单的ButterKnife
- java-泛型(T)、Object和?
- 在Spring项目中集成使用MongoDB
- Python 字符串
- JS学习-箭头函数
- 类模板非类型形参实现Stack
- css误区
- 邻接链表的构建详解【头插法&&尾插法】
- Webarchive文件
- python的scipy学习笔记
- 数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
- 极简Node教程-七天从小白变大神(三:你所不知道的模板表单)
- Caffe dependency
- Python 列表(List)