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)

  • 相关阅读:
    dda的fpga实现(转载)
    第四篇:数据预处理(一)
    第三篇:数据可视化
    第二篇:数据可视化
    第一篇:查阅数据
    RocketMQ集群部署记录
    使用k8s cronjob ,清除应用生成的日志文件
    使用HostAliases 添加pod 的/etc/hosts
    docker in docker 出现 libltdl.so.7 问题
    容器中JVM获取真实的CPU核数
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2429818.html
Copyright © 2011-2022 走看看