Ваш итератор при обходе не будет проходить по последнему элементу, нужно реализовывать фиктивный элемент end. Плюс к этому это не STL контейнер, так как общепринятый интерфейс STL контейнера не соблюден
Все равно работа с итераторами вообще не удовлетворяет стилю STL. Если вы хотели показать общие принципы контейнеров без привязки к STL, то делать это кодом не стоило явно
STL для новичков. Реализация класса-контейнера