zoukankan      html  css  js  c++  java
  • 使用模板元编程快速的得到斐波那契数。。

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

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

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

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

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

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

  • 相关阅读:
    实例之内存体系结构(1)--- 共享池(Share pool)
    体系结构 --- 实例和数据库
    分页查询与TOP-N特性
    MERGE 和 WITH语法
    外部表
    SQL语句(9)--- 同义词
    SQL语句(8)--- 索引
    SQL语句(7)--- 视图
    SQL语句(6)--- 约束
    死锁的产生与解决
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2429818.html
Copyright © 2011-2022 走看看