diff --git a/include/Kyoto/TAverage.hpp b/include/Kyoto/TAverage.hpp new file mode 100644 index 00000000..71f92258 --- /dev/null +++ b/include/Kyoto/TAverage.hpp @@ -0,0 +1,29 @@ +#ifndef _TAVERAGE_HPP +#define _TAVERAGE_HPP + +#include "types.h" + +#include "rstl/optional_object.hpp" +#include "rstl/vector.hpp" + +template < typename T > +class TAverage : rstl::vector< T > { +public: + TAverage() {} + TAverage(int capacity, const T& value); + void AddValue(const T& value) { + push_back(value); + for (int i = size() - 1; i > 0; --i) { + operator[](i) = operator[](i - 1); + } + operator[](0) = value; + } + rstl::optional_object< T > GetAverage() const; +}; + +template < typename T > +TAverage< T >::TAverage(int capacity, const T& value) { + resize(capacity, value); +} + +#endif