类模板非类型形参实现Stack
原创地址: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;
}
类模板非类型形参实现Stack相关推荐
- 判断exception类型_C++核心准则T.44:使用函数模板推断类模板参数类型(如果可能)...
T.44: Use function templates to deduce class template argument types (where feasible) T.44:使用函数模板推断类 ...
- 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器
1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPush ...
- 模板的模板参数与非类型模板参数
模板参数-实现容器适配器 我们在学习栈和队列时,通过数组或链表实现,这里C++提供一种实现方式:容器适配器. 用vector或者list为容器,适配出一个stack或queue,具体是如何实现? 基本 ...
- 浅谈非类型模板参数、模板的特化
非类型模板参数 1.模板参数分类类型形参与非类型形参. 2.类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称.类型参数也可以给缺省值 3.非类型形参,就是用一个常 ...
- 模板详解 --- 函数模板与类模板
目录 函数模板 函数模板的格式: 函数模板的实例化: 模板参数的匹配原则 类模板 类模板的格式: 类模板的实例化: 非类型模板参数 我们为什么要使用模板? C++使用模板的目的是为了解 ...
- 类模板(参考《C++ Templates 英文版第二版》)
类模板(参考<C++ Templates 英文版第二版>) Chapter 1 类模板 与函数相似,类也可以被一个或者多个类型参数化 在这章,我们使用栈作为例子 2.1 类模板stack的 ...
- C++函数模板与类模板的区别
类模板: C++ 除了支持函数模板,还支持类模板(Class Template).函数模板中定义的类型参数可以用在函数声明和函数定义中,类模板中定义的类型参数可以用在类声明和类实现中.类模板的目的同样 ...
- [Reprint] C++函数模板与类模板实例解析
这篇文章主要介绍了C++函数模板与类模板,需要的朋友可以参考下 本文针对C++函数模板与类模板进行了较为详尽的实例解析,有助于帮助读者加深对C++函数模板与类模板的理解.具体内容如下: 泛型编程(Ge ...
- C++知识点56——类模板(1、模板类的介绍)
一.类模板 和函数模板一样,类模板也得通过template关键字来声明和定义,C++标准库中有很多容器都是类模板 示例 template <typename T> class mystac ...
最新文章
- 综合素质计算机能力,教资统考中学《综合素质》:信息处理能力(一)
- 北京智能计算产业研究院落户顺义,中科睿芯联手计算所、顺义区打造“产业园2.0”...
- UML学习总结(3)——StarUML指导手册
- JavaScript实现integerPartition整数划分算法(附完整源码)
- docker添加阿里云专属镜像
- 力荐!计算机视觉开源工具中的瑞士军刀—Dlib最新高级特性教程
- 待支付取件费用是什么意思_1元保管费与直接取件,你赞赏丰巢快递柜了吗?...
- 聚能聊每周精选 第十一期
- Oracle 升级(10.2.0.1 -- 10.2.0.4) 包含升级包
- 【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
- 全国计算机二级c真题及答案,全国计算机二级c语言历年真题及答案
- NA Express
- UiPath 网页元素识别
- word中如何将空格变成换行
- Qt的gui编程是,点击一次button出现两次action
- 图解TCP/IP 第一章 网络基础知识
- 【MySQL】在线无锁无延迟DDL神器gh-ost
- win10 桌面体验 服务器,windows server 2012 R2 安装桌面体验
- 使用HM NIS Edit制作软件安装包
- 淘宝淘口令解密,解析,转换接口,API对接