/////////////////////////////////////////////////////////////// // MT1-Q2.cpp - container for last N inputs // // // // Jim Fawcett, CSE687 - Object Oriented Deisgn, Spring 2019 // /////////////////////////////////////////////////////////////// #include #include //// solution starts here /////////////////////////////////////////// template class LastN { public: using iterator = typename std::list::iterator; using const_iterator = typename std::list::const_iterator; LastN(size_t N) : N_(N) {} void add(const T& t) { list_.push_front(t); if (list_.size() > N_) list_.pop_back(); } iterator begin() { return list_.begin(); } iterator end() { return list_.end(); } private: std::list list_; size_t N_; }; //// required solution ends here //////////////////////////////////// #include template void show(LastN& ln) { std::cout << "\n "; for (T item : ln) std::cout << item << " "; } int main() { std::cout << "\n MT1-Q2 - container for last N inputs"; std::cout << "\n --------------------------------------\n"; LastN ln(5); for (int i = 0; i < 10; ++i) { ln.add(i); show(ln); } std::cout << "\n\n"; }