zoukankan      html  css  js  c++  java
  • 标准库function类型的使用

    14.44编写一个简单的桌面计算器使其能处理二元运算。

    #include<iostream>
    #include<map>
    #include<functional>
    #include<string>
    using namespace std;
    
    int add(int a,int b)
    {
        return a+b;
    }
    
    struct divide{
        int operator()(int denominator,int divisor)
        {
            return denominator/divisor;
        }
    };
    
    auto mode=[](int i,int j) { return i%j;};
    
    int main()
    {
        int (*pf)(int,int)=add;
        map<string,function<int(int,int)>> binops;
        binops.insert({"+",add});
        binops.insert({"+",pf});
        binops.insert({"-",minus<int>()});
        binops.insert({"*",[](int i,int j) {return i*j;}});
        binops.insert({"/",divide()});
        binops.insert({"%",mode});
        cout<<binops["+"](1,3)<<endl;
        cout<<binops["-"](2,5)<<endl;
        cout<<binops["*"](1,2)<<endl;
        cout<<binops["/"](4,2)<<endl;
        cout<<binops["%"](4,2)<<endl;
        return 0;
    }

    运行结果:

  • 相关阅读:
    springBoot异常处理
    webSocket
    Java正则
    String.format
    JSTL-taglib
    http meta
    chrome 常用插件下载安装
    mysql 命令行个性化设置
    Entity Framework Code First
    SignalR Connection has not been fully initialized
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3944544.html
Copyright © 2011-2022 走看看