1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class MovingAverage { public: MovingAverage(int size) : n(size), sum(0) {
}
double next(int val) { q.push(val); sum += val; if (q.size() > n) { sum -= q.front(); q.pop(); } return sum / q.size(); }
int n; double sum; queue<int> q; };
|