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

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

时间:2024-07-13 22:28:30浏览次数:11  
标签:return divide int 练习 C++ include 其能 14.44

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

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

环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块
/*************************************************************************
	> 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;
}
运行结果显示如下

在这里插入图片描述

标签:return,divide,int,练习,C++,include,其能,14.44
From: https://blog.csdn.net/navicheung/article/details/140289402

相关文章

  • Android C++系列:Linux常用函数和工具
    1.时间函数1.1文件访问时间#include<sys/types.h>#include<utime.h>intutime(constchar*name,conststructutimebuf*t);返回:若成功则为0,若出错则为-1如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间;如果times是非空指针,则存取时......
  • Android C++系列:Linux进程间关系
    1.终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),在前面文章我们说过,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况......
  • C++ //练习 15.5 定义你自己的Bulk_quote类。
    C++Primer(第5版)练习15.5练习15.5定义你自己的Bulk_quote类。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >FileName:ex15.3.cpp >Author: >Mail: >CreatedTime:Fri12J......
  • C++ //练习 15.7 定义一个类使其实现一种数量受限的折扣策略,具体策略是:当购买书籍的数
    C++Primer(第5版)练习15.7练习15.7定义一个类使其实现一种数量受限的折扣策略,具体策略是:当购买书籍的数量不超过一个给定的限量时享受折扣,如果购买量一旦超过了限量,则超出的部分将以原价销售。环境:LinuxUbuntu(云服务器)工具:vim 代码块/**************************......
  • 模型部署 - TensorRT - C++版本与Python版本应如何选择
    从性能角度来看,TensorRTC++版本和Python版本之间确实存在一些差异:C++版本性能更优:TensorRTC++版本使用了更底层的API,可以更好地利用硬件特性,进行更深层的优化。C++版本在内存管理、CPU-GPU数据传输等方面更加高效,这些都可以带来更好的推理性能。Python版本更易......
  • c++初始化列表和构造函数初始化的区别
    在C++中,初始化列表和构造函数初始化是两种不同的方法用于初始化类的成员变量。初始化列表(InitializationList):初始化列表是在构造函数的参数列表后面使用冒号(:),然后跟随着每个成员变量的初始化方式。通过初始化列表,可以在对象构造时直接为成员变量赋值,而不是在构造函数体内......
  • C++客户端Qt开发——开发环境
    一、QT开发环境1.安装三个部分①C++编译器(gcc,cl.exe……)②QTSDKSDK-->软件开发工具包比如,windows版本QTSDK里已经内置了C++的编译器(内置编译器是mingw,windows版本的gcc/g++)③QT的集成开发环境(IDE)官方提供的QTCreator最容易入门,最容易上手的方式,开箱即用,虽然QTCrea......
  • C++ 入门基础:开启编程之旅
    引言C++是一种高效、灵活且功能强大的编程语言,广泛应用于系统软件、游戏开发、嵌入式系统、科学计算等多个领域。作为C语言的扩展,C++不仅继承了C语言的过程化编程特性,还增加了面向对象编程(OOP)的支持,使得代码更加模块化、易于管理和复用。本文将带你走进C++的世界,从......
  • c++继承特点,菱形继承,访问方式,默认成员函数
    目录继承概念继承特性继承后成员访问的方式的变化子父类成员重命名派生类的默认成员函数​编辑菱形继承小tip继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,......
  • 05day--C++日期类的实现与取地址运算符的重载
    这里写目录标题5.3⽇期类实现6.取地址运算符重载6.1const成员函数6.2取地址运算符重载5.3⽇期类实现Date.h#pragmaonce#include<iostream>usingnamespacestd;#include<assert.h>classDate{//友元函数声明friendostream&operator<<(ostream&......