Advertisement
gravitiq

Untitled

Aug 29th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <numeric>
  4.  
  5. using namespace std;
  6.  
  7. template <typename T>
  8. class Average {
  9. public:
  10.     void add(const T &value) {
  11.         vec.push_back(value);
  12.     }
  13.  
  14.     double average() {
  15.         return accumulate(vec.begin(), vec.end(), 0.0) / vec.size();
  16.     }
  17.  
  18.     void reset(){
  19.         vec.clear();
  20.     }
  21.  
  22.     void print() const{
  23.         bool first = true;
  24.         cout << "[";
  25.         for (auto const &item : vec) {
  26.             if (first) {
  27.                 cout << item;
  28.                 first = false;
  29.             }
  30.             else {
  31.                 cout << ", " << item;
  32.             }
  33.         }
  34.         cout << "]" << endl;
  35.     }
  36.    
  37. private:
  38.     vector<T> vec;    
  39. };
  40.  
  41.  
  42. int main()
  43. {
  44.  
  45. Average<float> a1;
  46. a1.add(1.5);
  47. a1.add(6);
  48. a1.add(2);
  49. a1.add(9);
  50. a1.print();
  51. cout << "Average: " << a1.average() << endl;
  52. a1.reset();
  53. a1.print();
  54.  
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement