类模板的使用

注意在每次类模板函数时都需要声明一个类模板

#include<iostream>
using namespace std; template <class T,int num>
class Stack{
private:
T t[num];
int point;
public:
Stack();
bool IsEmpty();
bool IsFull();
bool Push(const T& a);
bool Pop(T& result);
};
template <class T,int num>
Stack<T,num>::Stack(){
point = 0; //指向栈底
}
template <class T,int num>
bool Stack<T,num>::IsEmpty(){
return point == 0;
}
template <class T,int num>
bool Stack<T,num>::IsFull(){
return point == num;
}
template <class T,int num>
bool Stack<T,num>::Pop(T& result){ //出栈先判断栈是否为空 Pop还需要一个元素来存储弹出的结果
if(IsEmpty()){
return 0;
}
else{
point--;
result = t[point];
}
return true;
}
template <class T,int num>
bool Stack<T,num>::Push(const T& a){ //入栈先判断栈是否已满
if(IsFull()){
return 0;
}
else{ t[point] = a; //注意先后顺序,point指的实际上是栈中最顶部元素上面的位置
point++;
}
return true;
}
int main(){
Stack<int,10> S; //注意初始化的方式Stack<int,10>
cout<<S.IsEmpty()<<endl;
for(int i = 0;i < 10;i++){
S.Push(i);
}
int res; //该变量用来存储弹出的结点
while(S.Pop(res)){
cout<<res<<" ";
}
cout<<endl;
}

C++面试常见问题——17类模板的使用的更多相关文章

  1. C++面试常见问题——16函数模板的使用

    函数模板的使用 函数模板在使用之前必须在外部对函数模板进行初始化. 函数模板的实例化包含两中 1.隐式实例化: template <class T> //没有: T Fun(T a,T b ...

  2. C++面试常见问题——03String类的实现

    String类的具体实现 string的内容其实就是C中的字符串,在C中是char*型,在C++中是string类型. //C char *str = "mengziyue"; / ...

  3. C++17尝鲜:类模板中的模板参数自动推导

    模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写 std::pair a{1, "a"s}; // C++17 ...

  4. 17周 oj 比較大小 类模板

    /*声明一个类模板,利用它分别实现两个整数. 浮点数和字符的比較,求出大数和小数. 说明:在类模板外定义各成员函数. 输入两个整数.两个浮点数和两个字符 从大到小输出两个整数.两个浮点数和两个字符 * ...

  5. 【校招面试 之 C/C++】第2题 函数模板、类模板、特化、偏特化

    1.C++模板 说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板.我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样 ...

  6. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

  7. [Reprint] C++函数模板与类模板实例解析

    这篇文章主要介绍了C++函数模板与类模板,需要的朋友可以参考下   本文针对C++函数模板与类模板进行了较为详尽的实例解析,有助于帮助读者加深对C++函数模板与类模板的理解.具体内容如下: 泛型编程( ...

  8. C++ —— 类模板的分离式编译

    目录 对于C++中类模板的分离式编译的认识 具体的实例 1.对于C++中类模板的分离式编译的认识 为什么C++编译器不能支持对模板的分离式编译(博文链接) 主要内容:编译器编译的一般工作原理.对模版的 ...

  9. C++类模板的三种特化

    说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多.我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型: 二是特化为引用,指针 ...

随机推荐

  1. el-select 选项值动态更新的问题

      如果 类似 el-select 等表单元素绑定了 类似 a.b 之类的属性,而不是直接的一级属性的话,当这个属性发生更改的时候,它的显示效果可能不会动态地进行更新,这个时候需要使用 Vue.$se ...

  2. DNS域名解析,内网

    1.登录DNS服务器 windows系统 2.打开dns程序,新建区域.如下图 按默认的选项就行 2.点击空白处的右键,新建主机 具体如下图 3.可以测试访问了 ,如果做过hosts文件的修改,本机的 ...

  3. springboot RESTful Web Service

    参考:http://spring.io/guides/gs/rest-service-cors/

  4. Java解析json数组三种情况

    package com.example.demo.json; import java.util.Map; import com.alibaba.fastjson.JSON; import com.al ...

  5. 「NOIP2017」逛公园

    传送门 Luogu 解题思路 考虑 \(\text{DP}\). 设 \(f[u][k]\) 表示从 \(u\) 到 \(n\) 走过不超过 \(Mindis(u, n) + k\) 距离的方案数. ...

  6. 图形数据写入数据库,Filletream

    图形数据写入数据库 用FileStream对象读模式打开图形文件 Dim 文件对象 As New FileStream(图形文件名, FileMode.Open, FileAccess.Read) 定 ...

  7. UISearchBar设置背景色

    1.关于UISearchBar的背景颜色,竟然要如下设置才正常: [documentSearchView setBackgroundImage:[UIImage new]]; documentSear ...

  8. python 网络爬虫(三)

    一.网站地图爬虫 在一个简单的爬虫中,我们将使用实例网站 robots.txt 文件中发现的网站地图来下载所有网站,为了解析网站地图,我们将会使用一个简单的正则表达式,从<loc>标签中提 ...

  9. pycharm安装PyQt框架

    首先需要安装必要插件 File  -->  Settings  -->  Project Interpreter 如果出现以下这种情况:请升级pip,参考:https://www.cnbl ...

  10. onchange VS onblur

    参考:https://zhidao.baidu.com/question/559052179.html