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; } 运行结果显示如下