fork download
  1. #include <vector>
  2. #include <algorithm>
  3. #include <iostream>
  4.  
  5. int main()
  6. {
  7. std::vector<int> a = { 1,2,3,4,5,6,7 };
  8.  
  9. struct accu_t
  10. {
  11. int sum, product;
  12. static accu_t& handle(accu_t& a, int i)
  13. {
  14. a.sum+=i;
  15. a.product*=i;
  16. return a;
  17. }
  18. } accum = { 0, 1 };
  19.  
  20. accum = std::accumulate(a.begin(), a.end(), accum, &accu_t::handle);
  21.  
  22. std::cout << "sum: " << accum.sum << ", product: " << accum.product << std::endl;
  23.  
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 2960KB
stdin
Standard input is empty
stdout
sum: 28, product: 5040