C++模板递归深度的思考
来源:互联网 发布:淘宝优惠券在哪里看 编辑:程序博客网 时间:2024/06/05 13:23
#include <iostream>using namespace std;template<int N>class A{public: enum{ result = N + A<N - 1>::result};};template<>class A<1>{public: enum{result=1};};int main(){ cout << A<500>::result << endl; //vs2013下面最多只能递归500的深度。 //因为在编译阶段的递归深度是由限制的,不同的操作系统也不太一样, //但是总的来说都不会太大。 return 0;}
#include<iostream>using namespace std;template<int N,int M>class A{public: enum{ mid = (N+M) /2}; static const int result = M+ A<N, mid>::result+A<mid,M-1>::result; //这里运用了二分法大大的减少了递归的深度。 //哈哈,这里任意大的数字都不会报错了,因为这里类似于完全二叉树的形式 //递归下去,深度减少,运算的数字可以很大,只不过花费的时间比较多,像 //我用20000来测试,大概等了30秒钟。我劝大家不要测试太大的数字,虽然 //不会报错,但是对资源消耗的过多会使电脑卡死,我卡死2次,用200000测试的。};template<int M>class A<M,M>{public: static const int result = 0;};int main(){ cout << A<0, 10000>::result << endl; return 0;}
1 0
- C++模板递归深度的思考
- C++编译器的递归深度与程序优化思考
- 汉洛塔递归实现的思考(C语言)
- 汉洛塔递归实现的思考(C语言)
- 汉洛塔递归实现的思考(C语言)
- 对递归的思考
- 递归的思考
- 递归的一点思考
- 关于递归的思考
- 关于递归的思考
- 关于模板的思考
- Python的递归深度
- python3的递归深度
- 图的深度优先搜索遍历(邻接表&邻接矩阵,递归&非递归)(C++)
- 递归模式的思考(一)
- 关于递归的一些思考
- 算法思考--------汉诺塔c语言实现-------递归
- 对模板引擎的思考
- halcon一维测量
- ROS安装USB摄像头
- OCR File and Voting Disk Administration by Example - (Oracle 10g)
- [Leetcode]-Min Stack
- Stanford UFLDL教程 反向传播算法(BP算法)
- C++模板递归深度的思考
- Android下如何mount光盘镜像ISO文件 (2012-03-06 22:01:29)
- 第5天-sql计算字段的创建与基础函数的使用
- 【莫比乌斯反演】【bzoj2301】problem b
- 编写测试用例
- Rotate Array
- PLSQL developer 连接不上64位Oracle 的解决方法
- 仿51用车 Ipad版
- [刷题]Clone Graph