fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <numeric>
  5. using namespace std;
  6.  
  7. struct myStruct
  8. {
  9. int num;
  10. };
  11.  
  12. int main()
  13. {
  14. vector<myStruct> numVec(20);
  15. int sum;
  16.  
  17. for(int i = 0; i < 20; ++i)
  18. numVec[i].num = i+1;
  19.  
  20. auto end = numVec.end();
  21. decltype(numVec)::difference_type increment = 5;
  22.  
  23.  
  24. for (auto start = numVec.begin(); start != end; ++start)
  25. {
  26. auto stop = start + std::min(end-start, increment);
  27.  
  28. sum = std::accumulate(start, stop, 0,
  29. [](auto a, const auto &elem){
  30. cout << "sum += " << elem.num << endl;
  31. return a + elem.num;
  32. }
  33. );
  34.  
  35. cout << "Sum: " << sum << endl;
  36. }
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5628KB
stdin
Standard input is empty
stdout
sum += 1
sum += 2
sum += 3
sum += 4
sum += 5
Sum: 15
sum += 2
sum += 3
sum += 4
sum += 5
sum += 6
Sum: 20
sum += 3
sum += 4
sum += 5
sum += 6
sum += 7
Sum: 25
sum += 4
sum += 5
sum += 6
sum += 7
sum += 8
Sum: 30
sum += 5
sum += 6
sum += 7
sum += 8
sum += 9
Sum: 35
sum += 6
sum += 7
sum += 8
sum += 9
sum += 10
Sum: 40
sum += 7
sum += 8
sum += 9
sum += 10
sum += 11
Sum: 45
sum += 8
sum += 9
sum += 10
sum += 11
sum += 12
Sum: 50
sum += 9
sum += 10
sum += 11
sum += 12
sum += 13
Sum: 55
sum += 10
sum += 11
sum += 12
sum += 13
sum += 14
Sum: 60
sum += 11
sum += 12
sum += 13
sum += 14
sum += 15
Sum: 65
sum += 12
sum += 13
sum += 14
sum += 15
sum += 16
Sum: 70
sum += 13
sum += 14
sum += 15
sum += 16
sum += 17
Sum: 75
sum += 14
sum += 15
sum += 16
sum += 17
sum += 18
Sum: 80
sum += 15
sum += 16
sum += 17
sum += 18
sum += 19
Sum: 85
sum += 16
sum += 17
sum += 18
sum += 19
sum += 20
Sum: 90
sum += 17
sum += 18
sum += 19
sum += 20
Sum: 74
sum += 18
sum += 19
sum += 20
Sum: 57
sum += 19
sum += 20
Sum: 39
sum += 20
Sum: 20