C++模板-实现栈(进制转换)

来源:互联网 发布:linux递归创建目录 编辑:程序博客网 时间:2024/06/06 01:38

下面分享一个代码,实现的是进制转换的效果,用到了类的模板知识。
类的模板我简单理解的解释一下,首先要有两个概念:模板类,和类模板。
当在主函数中使用了模板,才会在内存中分配模板类的空间,二在主函数外定义的都只能叫做类模板。有了模板类,就可以很方便的修改栈中放入和取出的数据类型。
这里把修改的代码给出,其他代码和之前一样。

#include "Stack.h"#include "Coordinate.h"#include <stdlib.h>#include <iostream>using namespace std;#define Binary 2#define Octonary 8#define Hex 16int main(){    char num[17] = "0123456789ABCDEF";    Stack<char>* p = new Stack<char>(30);//这里<>填入什么数据类型,网堆中就传入什么类型的数据。这里因为是传入数()各种进制,所以用int    int N = 5555;    int Mod = 0;    while (N != 0)    {        Mod = N%Binary;        //Mod = N% Octonary;        //Mod = N%Hex;        p->enterStack(num[Mod]);        N = N / Binary;        //N = N / Octonary;        //N = N / Hex;    }    p->travelStack();    //cout << p->StackLen() << endl;    system("pause");    return 0;}
0 0
原创粉丝点击