fork download
  1. #include <algorithm>
  2. #include <vector>
  3. #include <functional>
  4.  
  5. class F {
  6. int _a;
  7.  
  8. public:
  9. F(const int a):_a(a) {}
  10. int calc(const int x, const int k) const { return k * x + _a; }
  11. };
  12.  
  13. struct Invoker{
  14. std::vector<int> invoke(const std::vector<int>& v, const F& f) const
  15. {
  16. using std::placeholders::_1;
  17.  
  18. std::vector<int> ret(v.size());
  19. std::transform(
  20. v.cbegin(),
  21. v.cend(),
  22. ret.begin(),
  23. std::bind(&F::calc, f, _1, 2));
  24. return ret;
  25. }
  26. };
  27.  
  28. int main()
  29. {
  30. const F f(2);
  31. std::vector<int> v{4, 5, 6};
  32. const Invoker invoker;
  33. invoker.invoke(v, f);
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty