#ifndef CIRCULARBUFFER_H #define CIRCULARBUFFER_H /////////////////////////////////////////////////////////////////// // circularBuffer.h - declares buffer holding last n insertions // // Exam2:Q10 // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 05 // /////////////////////////////////////////////////////////////////// #include using namespace std; template class CircularBuffer { public: typedef T value_type; typedef typename std::list::reverse_iterator iterator; CircularBuffer(unsigned int n) : bufSize_(n) {} virtual ~CircularBuffer() {} void insert(const T& t) { buf_.push_back(t); if(buf_.size() > bufSize_) buf_.pop_front(); } iterator begin() { return buf_.rbegin(); } iterator end() { return buf_.rend(); } protected: std::list buf_; unsigned int bufSize_; }; #endif