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

C++ Primer(第5版) 练习 14.44

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

环境:Linux Ubuntu(云服务器)
工具:vim
代码块
cpp 复制代码
/*************************************************************************
	> File Name: ex14.44.cpp
	> Author: 
	> Mail: 
	> Created Time: Tue 09 Jul 2024 10:37:09 AM CST
 ************************************************************************/

#include<iostream>
#include<vector>
#include<functional>
#include<algorithm>
#include<map>
using namespace std;

int add(int a, int b){
    return a + b;
}

auto mod = [](int a, int b){ return a % b; };

struct divide{
    int operator()(int a, int b){
        return a / b;
    }
};


int main(){
    map<string, function<int(int, int)>> binops = {
        {"+", add},
        {"-", std::minus<int>()},
        {"/", divide()},
        {"*", [](int a, int b){ return a * b; }},
        {"%", mod}
    };

    int a, b;
    cout<<"Enter a and b: ";
    cin>>a>>b;
    cout<<"a + b = "<<binops["+"](a, b)<<endl;
    cout<<"a - b = "<<binops["-"](a, b)<<endl;
    cout<<"a * b = "<<binops["*"](a, b)<<endl;
    cout<<"a / b = "<<binops["/"](a, b)<<endl;
    cout<<"a % b = "<<binops["%"](a, b)<<endl;

    return 0;
}
运行结果显示如下
相关推荐
咕咕嘎嘎10242 分钟前
C++六个默认成员函数
c++
脾气有点小暴3 分钟前
前端页面跳转的核心区别与实战指南
开发语言·前端·javascript
lxh01139 分钟前
最长递增子序列
前端·数据结构·算法
rit843249927 分钟前
基于MATLAB的BP神经网络手写数字识别
开发语言·神经网络·matlab
Youyzq1 小时前
前端项目发布到cdn上css被编译失效问题rgba失效和rgb失效
前端·css·算法·cdn
San30.1 小时前
深入 JavaScript 内存机制:从栈与堆到闭包的底层原理
开发语言·javascript·udp
风筝在晴天搁浅1 小时前
代码随想录 516.最长回文子序列
算法
灰灰勇闯IT1 小时前
RN路由与状态管理:打造多页面应用
开发语言·学习·rn路由状态
wd_cloud1 小时前
QT/6.7.2/Creator编译Windows64 MySQL驱动
开发语言·qt·mysql
菜鸟233号1 小时前
力扣513 找树左下角的值 java实现
java·数据结构·算法·leetcode