fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <functional>
  4. #include <cmath>
  5.  
  6. double fun1(double x1, double x2)
  7. {
  8. double res1 = std::pow(x1,2.0)*5.0 + std::pow(x2,2)*4.0 + 14.0;
  9. return res1;
  10. }
  11.  
  12. std::function<double(double)> fun2(const std::vector<double> *v1, const std::vector<double> *v2, double(*f1)(double, double))
  13. {
  14. return [v1, v2, f1](double p) -> double
  15. {
  16. return f1(((*v1)[0] + p*(*v2)[0]), ((*v1)[1] + p*(*v2)[1]) );
  17. };
  18. }
  19.  
  20. int main()
  21. {
  22. double res3;
  23. std::vector<double> v1 = { 4.0,5.0 };
  24. std::vector<double> v2 = { -2.0,3.0 };
  25. res3 = fun2(&v1, &v2, &fun1)(3);
  26.  
  27. std::cout << res3 << std::endl;
  28.  
  29. return 0;
  30. }
  31.  
Success #stdin #stdout 0s 4524KB
stdin
Standard input is empty
stdout
818