#pragma once #include #include template class HistoryT { public: HistoryT(size_t size=4):bufSize(size) {}; void Spill() { for(auto x: buffer) { std::cout << x << " "; } std::cout << std::endl; } void Push(T item); private: std::vector buffer; size_t bufSize; }; template void HistoryT::Push(T item) { if (buffer.size() < bufSize) { buffer.push_back(item); } else { for(size_t i = 1; i < bufSize; i++) { buffer[i-1] = buffer[i]; } buffer.back() = item; } }