fork download
  1. #include <iostream>
  2. #include <unordered_map>
  3. #include <functional>
  4.  
  5. const std::unordered_map<char, std::function<int(int, int)>> operations = {
  6. {'+', [](int a, int b){ return a + b; }},
  7. {'-', [](int a, int b){ return a - b; }},
  8. {'*', [](int a, int b){ return a * b; }},
  9. {'/', [](int a, int b){ return a / b; }},
  10. {'%', [](int a, int b){ return a % b; }},
  11. // etc...
  12. };
  13.  
  14. int main() {
  15. char a = '+';
  16. auto op = operations.at(a);
  17. int b = op(2, 2);
  18. std::cout << b << std::endl;
  19.  
  20. a = '-';
  21. op = operations.at(a);
  22. b = op(2, 2);
  23. std::cout << b << std::endl;
  24.  
  25. //...
  26.  
  27. return 0;
  28. }
Success #stdin #stdout 0s 5292KB
stdin
Standard input is empty
stdout
4
0