ilist.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // ilist.cpp -- use initializer_list
  2. #include <iostream>
  3. #include <initializer_list>
  4. double sum(std::initializer_list<double> il);
  5. double average(const std::initializer_list<double> & ril);
  6. int main()
  7. {
  8. using std::cout;
  9. cout << "List 1: sum = " << sum({2,3,4})
  10. <<", ave = " << average({2,3,4}) << '\n';
  11. std::initializer_list<double> dl = {1.1, 2.2, 3.3, 4.4, 5.5};
  12. cout << "List 2: sum = " << sum(dl)
  13. <<", ave = " << average(dl) << '\n';
  14. dl = {16.0, 25.0, 36.0, 40.0, 64.0};
  15. cout << "List 3: sum = " << sum(dl)
  16. <<", ave = " << average(dl) << '\n';
  17. // std::cin.get();
  18. return 0;
  19. }
  20. double sum(std::initializer_list<double> il)
  21. {
  22. double tot = 0;
  23. for (auto p = il.begin(); p !=il.end(); p++)
  24. tot += *p;
  25. return tot;
  26. }
  27. double average(const std::initializer_list<double> & ril)
  28. {
  29. double tot = 0;
  30. int n = ril.size();
  31. double ave = 0.0;
  32. if (n > 0)
  33. {
  34. for (auto p = ril.begin(); p !=ril.end(); p++)
  35. tot += *p;
  36. ave = tot / n;
  37. }
  38. return ave;
  39. }