В соответствии с cppreference.com:Как написать STL-совместимый контейнер, но его размер неизвестен?
Любой СТЛ-совместимый контейнер должен обеспечивать функцию члена
size()
.
Теперь я должен написать STL-совместимый контейнер MyContainer
, MyContainer::iterator
представляет собой тип std::input_iterator
, то есть MyContainer
может быть пройдена только один проход. Например, я использую MyContainer
для хранения результата SQL-запроса и использую его iterator
для записи записей один за другим.
Я столкнулся с такой проблемой: MyContainer
может предоставить begin()
и end()
для перемещения своих значений, но не может предварительно определить общий размер его значений.
Как это сделать в таком случае?
Это не контейнер, вы должны думать в терминах итераторов, а не контейнера в этом случае. Это не должно быть проблемой, поскольку большинство стандартных функций используют итераторы, а не контейнеры. – Holt
Вам нужен «поток», а не контейнер. Вы можете начать с чего-то из решения 'std :: istream'. – Arunmu
'stream' - это ориентированное на характер решение, которое не соответствует моей проблеме. Я думаю. – xmllmx