Я пытаюсь реализовать класс, который позволил бы мне перебирать объекты в стиле STL без явного сохранения их в контейнере.
Упрощенным примером этого будет, скажем, <Paragraph>::iterator
в классе, который на самом деле не имеет контейнера Paragraphs, но вместо этого имеет переменную <string> text
.Легко создать функцию-член, которая на самом деле проходит по тексту построчно и собирает абзацы, но мне кажется глупым снова хранить весь этот текст в каком-то контейнере, чтобы я мог наследовать от его итераторов.
Кроме того, причина, по которой я назвал это <Paragraph>::iterator
, а не <string>::iterator
, заключается в том, что я могу захотеть использовать итератор другого типа.Например, я мог бы посчитать количество символов в каждом из абзацев и получить <int>::iterator
.
Наверное, у меня такой вопрос: уместно ли думать с точки зрения итераторов, когда нет контейнера?
Спасибо