模板:<bits/_Stack.h>
来源:互联网 发布:起凡刷通宝软件 编辑:程序博客网 时间:2024/05/01 15:49
今天抓起Stack的模板各种改了一发。。。经过各种无限CE之后终于把这BT的模板搞出来了。。。
又学了一堆关于模板的知识- - 主要就是结构体里面的static变量要在外面声明之后才可以使用- - 否则报错- -
原型:
template<typename T>class Stack;
使用方法:
using namespace PoPoQQQ_Stack;int main(){Stack<int> s;s.Push(1);//入栈cout<<s.Top()<<endl;//出栈cout<<s.Size()<<endl;//返回栈的大小cout<<s.Empty()<<endl;//返回栈是否为空s.Pop();//弹栈cout<<s.Empty()<<endl;}
代码:
#define _STACK_//Writen by PoPoQQQ//Shouldn't access fuction "Top()" or "Pop()" when the stack is empty.namespace PoPoQQQ_Stack{template<typename T>class Stack_Point{private:static Stack_Point<T>* bin;public:T mem;Stack_Point *last;void* operator new (size_t,T _,Stack_Point *__);void operator delete (void *p);};template<typename T> Stack_Point<T>* Stack_Point<T> :: bin;template<typename T> void* Stack_Point<T> :: operator new (size_t,T _,Stack_Point *__){if(bin){Stack_Point *re=bin;bin=bin->last;re->mem=_;re->last=__;return re;}static Stack_Point *mempool,*C;if(C==mempool){C=new Stack_Point[1<<15];mempool=C+(1<<15);}C->mem=_;C->last=__;return C++;}template<typename T> void Stack_Point<T> :: operator delete (void *p){( (Stack_Point<T>*)p)->last=bin;}template<typename T>class Stack{private:Stack_Point<T> *top;int size;public:Stack():top(0x0),size(0) {}inline T Top(){return top->mem;}inline void Pop(){Stack_Point<T>* temp=top->last;delete top;top=temp;--size;}inline bool Empty(){return size==0;}inline int Size(){return size;}inline void Push(T x){top=new (x,top) Stack_Point<T>;++size;}};}
0 0
- 模板:<bits/_Stack.h>
- 模板:<bits/_Complex.h>
- #include<bits/stdc++.h>
- #include<bits/stdc++.h>
- #include<bits/stdc++.h>
- bits/stdc++.h
- #include<bits/stdc++.h>
- #include<bits/stdc++.h>
- include < bits / stdc++ .h>
- #include<bits/stdc++.h>
- <bits/stdc++.h>内容
- bits/stdc++.h
- #include<bits/stdc++.h>
- <bits/stdc++.h>内容
- bits/c++config.h找不到
- 关于#include<bits/stdc++.h>
- 关于#include <bits/stdc++.h>
- 头文件 <bits/stdc++.h>
- [C++]LeetCode: 53 Unique Binary Search Trees
- java连接oracle,完全正确却没有数据
- 用Jmdns的注册服务、方法的使用
- Android NDK开发起步Hello Jni 及NDK开发环境搭建
- cocos2d-x多分辨率适配方案:setDesignResolutionSize详解
- 模板:<bits/_Stack.h>
- write drain
- IOS中的本地存储
- 【Android】app开发第一步:用ViewPager和SharedPreferences类设置app的引导界面
- Windows NDK 开发调试遇到问题及解决方
- Type Qualifiers in C and C++
- jquery处理JSON对象
- UI_网络编程
- leetcode----LRU Cache