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)

  • 相关阅读:
    深入理解委托、匿名方法和 Lambda 表达式
    常见SQL问题
    LeetCode题解——四数之和
    把中台说清楚
    程序员们的三高:高并发、高性能、高可用
    论文查重是怎么查的
    LeetCode题解——最长回文子串
    六百字读懂 Git(转)
    SQL中ON和WHERE的区别
    链表排序之堆排序
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2429818.html
Copyright © 2011-2022 走看看