fork(4) download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <functional>
  4. #include <vector>
  5. #include <numeric>
  6.  
  7. template<class T>
  8. struct multiply_range : public std::binary_function<T, T, T> {
  9. public:
  10. multiply_range() : i(0), j(1) { }
  11. T operator()(T a, T b) {
  12. if (!(this->i++ % 2) && (this->j++ % 2)) {
  13. return a * b;
  14. }
  15. }
  16. private:
  17. std::size_t i, j;
  18. };
  19.  
  20.  
  21. int main() {
  22. std::vector<int> vec_numsx = {1,2,3,4,5};
  23. std::vector<int> vec_numsy = {5,6,7,8,9,10};
  24. std::cout << std::inner_product(vec_numsx.begin(),
  25. vec_numsx.end(),
  26. std::next(vec_numsy.begin()),
  27. 0,
  28. std::plus<int>(),
  29. multiply_range<int>());
  30. return 0;
  31. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
74