C++:可调用对象与function
2016-08-08 22:55
351 查看
编写一个简单的桌面计算器使其能处理二元运算
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; }
相关文章推荐
- C++_STL
- 基于ARP的局域网IP劫持——C语言实现
- c++之STL(13) STL 算法 - 查找算法(4)find_first_of(b,e,sb,se) find_first_of(b,e,sb,se,bp)
- C++ const 指针
- C语言之矩阵输入6*8的矩阵,求矩阵中值最大的那个元素的值已经其所在的行号和列号
- C++ Primer 第13章 知识点回顾
- 238. Product of Array Except Self c语言
- c++头字母大写
- C/C++ 常见易混淆关键字区别 define/const,define/inline,malloc/new
- 开源一个简单的c++软光栅渲染器
- 15 款最好的 C/C++ 编译器和集成开发环境
- C语言之输出数组中相同的部分
- C++模拟实现堆heap和优先级队列poriorty_queue
- 一篇超容易让人理解的KMP算法文章
- C语言之指针的值
- C++对C语言的加强
- C语言文件读函数fgets()
- Java和C++在编译和运行上有什么区别?
- const在C与C++的区别
- C语言之结构体 现有36名教师,每个教师包括教工号,姓名,工资共三项基本信息,请用C语言编程,从键盘上输入每一位教师的基本信息,并打印输出工资最高者的工号,姓名工资和所有教师的平均工资