itertools::zip
#include <itertools.hpp>
Synopsis
template<typename R>detail::zipped<R…> zip (R &&… ranges)
Generate a zip of the ranges (similar to Python zip).
The function returns a iterable lazy object. When iterated upon, this object yields a tuple of the objects in the ranges.
Template parameters
R Type of the ranges
Parameters
- ranges
The ranges to zip.
Warning
The ranges have to be equal lengths or behaviour is undefined.
Example
#include <itertools/itertools.hpp>
#include <vector>
#include <iostream>
int main() {
std::vector<int> v1{10, 11, 12, 13, 14};
std::vector<int> v2{0, 1, 2, 3, 4};
for (auto [x, y] : itertools::zip(v1, v2)) std::cout << x << " " << y << std::endl;
}
Output
10 0
11 1
12 2
13 3
14 4