27class SlidingInterval final {
31 : buckets_(window_size)
33 UASSERT(
this->buckets_.size() > 0);
39 buckets_[idx_] = value;
41 if (idx_ == buckets_.size()) {
50 return std::accumulate(buckets_.begin(), buckets_.end(),
static_cast<T>(0)) /
this->buckets_.size();
56 [[nodiscard]] T
GetMinimal()
const {
return *std::min_element(buckets_.begin(), buckets_.end()); }
61 [[nodiscard]] T
GetMaximum()
const {
return *std::max_element(buckets_.begin(), buckets_.end()); }
65 [[nodiscard]] std::size_t
GetWindowSize()
const {
return buckets_.size(); }
68 utils::FixedArray<T> buckets_;