Это (еще )(другое )продолжение ответа Джеймса на этот вопрос:Сглаживающий итератор
Как изменить итератор flattenig _так, чтобы он работал рекурсивно? Скажем, у меня есть больше уровней вложенных контейнеров, и я не хочу ограничиваться заданной глубиной вложенности. т.е. сглаживание _итератор должен работать с
std::vector< std::vector < std::vector < int > > >
а также с
std::vector< std::vector < std::vector < std::vector < int > > > >
В моем реальном коде у меня есть массив объектов, которые могут содержать или не содержать такой массив.
редактировать:
Поэкспериментировав с различными способами перебора различных типов вложенных контейнеров, я узнал кое-что, что может быть интересно и другим :
. Доступ к элементам контейнера с помощью вложенных циклов выполняется в 5–6 раз быстрее, чем при использовании итератора.
Плюсы:
Минусы:
Другие плюсы и минусы?