1 没有使用模板的栈实现

 #include <iostream>
#include <string>
using namespace std; class Stack
{
public:
Stack(int size = );
~Stack();
bool isEmpty();
bool isFull();
void push(int data);
int pop();
private:
int* space;
int top; }; Stack::Stack(int size)
{
space = new int(size);
top = ;
}
Stack::~Stack()
{
delete[]space;
}
bool Stack::isEmpty()
{
return top == ;
}
bool Stack::isFull()
{
return top == ;
}
void Stack::push(int data)
{
space[top++] = data;
}
int Stack::pop()
{
return space[--top];
} int main()
{
Stack s();
int i = ;
/*if (!s.isFull())
{
s.push(10);
}*/
while (!s.isFull()&&i<)
{
s.push(i);
i+=;
}
i = ;
while (!s.isEmpty()&&i<)
{
cout << s.pop() << endl;
i += ;
}
cin.get();
return ;
}

2 使用模板以后的栈实现

 #include <iostream>
#include <string>
using namespace std; template<typename T>
class Stack
{
public:
Stack(int size)
{
space = new T[size];
top = ;
}
~Stack();
bool isEmpty();
bool isFull();
void push(T data);
T pop();
private:
T* space;
int top; }; template<typename T>
Stack<T>::~Stack()
{
delete[]space;
}
template<typename T>
bool Stack<T>::isEmpty()
{
return top == ;
}
template<typename T>
bool Stack<T>::isFull()
{
return top == ;
}
template<typename T>
void Stack<T>::push(T data)
{
space[top++] = data;
}
template<typename T>
T Stack<T>::pop()
{
return space[--top];
} int main()
{
Stack<double> s();
if (!s.isFull())
s.push(10.4);
if (!s.isFull())
s.push(10.5);
if (!s.isFull())
s.push(10.6);
if (!s.isFull())
s.push(10.7);
if (!s.isFull())
s.push(10.8);
if (!s.isFull())
s.push(10.9); Stack<string> s1();
if (!s1.isFull())
s1.push("ni");
if (!s1.isFull())
s1.push("hao"); while (!s1.isEmpty())
{
cout << s1.pop() << endl; }
cin.get();
return ;
}

可以其他类型可以自己多敲敲哦

c++函数模板二栈实现的更多相关文章

  1. C++ 函数模板二(函数模板重载)

    //函数模板重载 #include<iostream> using namespace std; /* 函数模板会进行严格的类型匹配,模板类型不提供隐式类型转化 普通函数能够进行自动类型转 ...

  2. C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    C#中的函数式编程:递归与纯函数(二)   在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...

  3. C++实验二——函数重载、函数模板、简单类的定义和实现

    一.实验过程 函数重载编程练习 实验要求:编写重载函数add(),实现对int型,double型,complex型数据的加法.在main函数中定义不同类型的数据,调用测试. 代码实现: 先是简单的体验 ...

  4. 【C++】模板简述(二):函数模板

    我们上文讲了,模板的引入,我们发现在某种特殊的情况下,必须得通过模板才能完美的解决问题. 本文就来简述一下函数模板的基本使用. 一.函数模板格式 template<typename Param1 ...

  5. C++(四十二) — 函数模板多态

     1.函数模板(参数多态) 相当于一个函数发生器,参数多态,可以重载. 普通函数和模板函数的本质区别: 普通函数的调用,可以进行隐式的类型转换: 函数模板的调用,使用类型参数化,严格按照类型进行匹配, ...

  6. C++学习笔记2_函数.函数指针.函数模板

    1. 内联函数void printAB(int a,int b){ cout<<(a)<<(b)<<endl;}int main(void){ for(int i= ...

  7. Lua函数之二

    Lua函数之二 Lua中函数的两个重要特性: 1.函数和其他类型(如number.string)一样,可以存放在变量中,也可以存放在table中,可以作为函数的参数,还可以作为函数的返回值. 2.嵌套 ...

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

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

  9. C++学习笔记之模板(1)——从函数重载到函数模板

    一.函数重载 因为函数重载比较容易理解,并且非常有助于我们理解函数模板的意义,所以这里我们先来用一个经典的例子展示为什么要使用函数重载,这比读文字定义有效的多. 现在我们编写一个交换两个int变量值得 ...

随机推荐

  1. ARP协议(1)什么是ARP协议

    这是最近在看<TCP/IP具体解释>系列书总结出来的,之后会陆续把其它协议部分分享出来. 我尽量以简单易读.易懂的方式呈现出来,可是,因为文笔和水平有限.有些地方或许存在描写叙述上的不足或 ...

  2. Audio原理图设计

    1.DMIC 1)当双MIC时,通过MIC上的Selection PIN脚PULL  U/D进行左右channel选择.

  3. 详谈kubernetes滚动更新-1

    系列目录 这个系列分为两个小节,第一个小节介绍deployment滚动更新时,deployment.replicaset.pod的细节以及创建过程以及deployment版本管理的方式 第二个小节将介 ...

  4. PHP debug_backtrace() 函数

    PHP Error 和 Logging 函数 实例 生成 PHP backtrace: <?php function a($txt) { b("Glenn"); } func ...

  5. HashSet、LinkHashSet、TreeSet总结

    HashSet:散列集,集合中的元素不允许重复,但是不要求顺序,输出的顺序和进入HashSet的顺序是没有关系的 LinkedHashSet :链表散列集,集合中的元素不允许重复,同时要求和进入Set ...

  6. OpenCV 环境搭建( Win7 32位 / VS2010 / OpenCV2.4.8 )

    前言 本文介绍如何搭建 OpenCV 开发环境 配置如下: 操作系统:WIN7 32位 开发平台:VS2010 OpenCV 版本:2.4.8 第一步:安装 OpenCV 2.4.8 1. 登陆 Op ...

  7. JAVA工厂方法模式(Factory Method)

    1.普通工厂模式 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 1-1.建立Sender接口 public interface Sender { public void ...

  8. HTTP Status 405

    分析原因: 1.doPost()和getPost()两个方法继承了父类,造成出错.

  9. 将css 中的16进制颜色, 转化为 rgb格式

    对dojo/_base/Color模块的注解. 源地址 https://github.com/robinxiong/dojo/blob/master/_base/Color.js function f ...

  10. mongoose基于mongodb的数据评论设计

    var CommentSchema = { data:{type: ObjectId, ref:'Data'}, //Data数据表,此处存数据id from:{type: ObjectId, ref ...