fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <map>
  5. #include <functional>
  6. using namespace std;
  7.  
  8. #define DARITF(op) [](double a, double b)->double{return a op b;}
  9. #define DMAPARITF(op) {#op, DARITF(op)}
  10. int main() {
  11. vector<double> results;
  12. map<string, function<double(double, double)>> functions = {
  13. DMAPARITF(+),
  14. DMAPARITF(-),
  15. DMAPARITF(*),
  16. DMAPARITF(/)
  17. };
  18. string in_function;
  19. double a, b;
  20. while(cin>>a>>in_function>>b)
  21. results.push_back(functions[in_function](a, b));
  22.  
  23. for(auto result : results)
  24. cout << result << " ";
  25. return 0;
  26. }
Success #stdin #stdout 0s 3440KB
stdin
10 * 10 20 - 10 30 - 8 52 / 2
stdout
100 10 22 26