14template <
class... Containers>
28 : _begin(create_iterators(cs...)), _end(create_end_iterators(cs...)),
29 _size(_compute_size(cs...)) {}
58 static std::size_t _compute_size(Containers&... containers) {
59 return std::min({containers.size()...});
68 static iterator_t create_iterators(Containers&... containers) {
78 static iterator_t create_end_iterators(Containers&... containers) {
Iterator for traversing the elements of multiple zipped containers, paired with their indices.
std::tuple< iterator_t< Containers >... > iterator_tuple
Type alias for the tuple of iterators for the containers being iterated.
Combines multiple containers into a single iterable unit, iterating over corresponding elements from ...
typename iterator::iterator_tuple iterator_t
Type alias for the tuple of iterators for the zipped containers.
IndexedZipperIterator< Containers... > iterator
Type alias for the iterator type.
iterator end()
Returns an iterator to the end of the zipped containers.
iterator begin()
Returns an iterator to the beginning of the zipped containers.
IndexedZipper(Containers &... cs)
Constructs an IndexedZipper with the given containers.