fork download
  1. #include <iostream>
  2. #include <functional>
  3. #include <map>
  4. #include <string>
  5. using namespace std;
  6.  
  7. int main() {
  8. map<string, function<float(float, float)>> operacje;
  9. operacje["+"] = [](float a, float b) { return a + b; };
  10. operacje["-"] = [](float a, float b) { return a - b; };
  11. operacje["*"] = [](float a, float b) { return a * b; };
  12. operacje["/"] = [](float a, float b) { return a / b; };
  13.  
  14. string znak;
  15. float a, b;
  16.  
  17. while(cin >> znak >> a >> b) {
  18. auto it = operacje.find(znak);
  19.  
  20. if(it != operacje.end())
  21. cout << it->second(a, b) << endl;
  22. else
  23. cout << "Brak operacji \"" << znak << "\"" << endl;
  24. }
  25.  
  26. return 0;
  27. }
Success #stdin #stdout 0s 3464KB
stdin
+ 2 5
- 123 11
* 5 6
/ 100 10
& 1 1
stdout
7
112
30
10
Brak operacji "&"