Если вы хотите что-то похожее на итератор, вы можете свернуть свое собственное, похожее на
template <class baseIter>
class circularIterator {
private:
baseIter cur;
baseIter begin;
baseIter end;
public:
circularIterator(baseIter b, baseIter e, baseIter c=b)
:cur(i), begin(b), end(e) {}
baseIter & operator ++(void) {++cur; if(cur == end) {cur = begin;}}
};
(Другие операции итератора оставлены читателю в качестве упражнения).