Consider the following simplified example and desired output:
class A { class combined_iterator { ???? } typedef ??? t_combined_it;
zip_iterator works if you want to iterate two iterators in parallel. If you need to iterate over containers in sequence you can probably implement one using iterator_adaptor.