编写一个简单的桌面计算器使其能处理二元运算
class Divide{
public:
int operator()(int a, int b)const{ return a / b; }
};
//普通函数
int Add(int a, int b){ return a + b; }
int mult(int a, int b){ return a*b; }
//命名lambda函数对象
auto Mod = [](int a, int b){return a % b; };
map<string, function<int(int, int)>> binops = {
{ "+", Add }, //函数指针
{ "-", std::minus<int>() }, //标准库函数对象
{ "/", Divide() }, //函数对象类
{ "*", bind(mult, _1, _2) }, //bind绑定的对象
{ "%", Mod }, //命名lambda函数对象
};
string s;
int a, b;
while (cin >> a >> s >> b)
{
cout << " = " << binops[s](a, b) << endl;
}