博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用模板元编程快速的得到斐波那契数。。
阅读量:6433 次
发布时间:2019-06-23

本文共 732 字,大约阅读时间需要 2 分钟。

这是一种将运行时消耗转移到编译器消耗的方法,是c++模板的一种应用。

当你的程序运行时效率需要特别高的时候,可以考虑这样的方法。

模板实例化的时候需要常量:

#include 
using namespace std;template < unsigned N >struct Fib{ enum { Val = Fib
::Val + Fib
::Val //递归。。 };};template<> //针对和的特化作为结束的条件struct Fib<0>{ enum { Val = 0 };};template<>struct Fib<1>{ enum { Val = 1 };};int main(){ cout<
<20>::Val <

如果你觉得Fib<20>::Val这样的调用很麻烦的话可以定义一个类似的宏使得其应用有类似于函数调用的形式:

#define FibFuc( n ) (Fib<n>::Val)

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/04/02/2429818.html,如需转载请自行联系原作者
你可能感兴趣的文章
汇编语言-笔记-第八章及实验7
查看>>
高度最小的BST
查看>>
spring framework 各版本源码下载地址
查看>>
github 相关操作知识
查看>>
【cl】测试用例【文本框-电子邮箱】
查看>>
去美国考托福还是雅思?雅思更简单实用
查看>>
PostgreSQL 性能优化
查看>>
HTML基础之JS
查看>>
剑指offer:第一个只出现一次的字符
查看>>
protobuf for lua in Mac
查看>>
决策树
查看>>
Web 前端颜色值--字体--使用,整理整理
查看>>
五、MySQL 创建数据库
查看>>
redis安全配置
查看>>
作业15-导航,头部,CSS
查看>>
DecimalFormat用法
查看>>
用javascript去掉字符串空格的办法
查看>>
test
查看>>
JAVA编程题-用java解决兔子问题
查看>>
pychon笔记
查看>>