class MovingAverage {
public:
/** Initialize your data structure here. */
MovingAverage(int size) {
_size = size;
_sum = 0.0;
}
double next(int val) {
if(_q.size() >= _size)
{
_sum += val;
_q.push(val);
_sum -= _q.front();
_q.pop();
}else
{
_sum += val;
_q.push(val);
}
return _sum/_q.size();
}
private:
queue<int> _q;
int _size;
double _sum;
};
/**
* Your MovingAverage object will be instantiated and called as such:
* MovingAverage* obj = new MovingAverage(size);
* double param_1 = obj->next(val);
*/