//******************************************************** // The following code example is taken from the book // C++23 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd23.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include #include #include #include #include #include using namespace std::literals; int main() { std::vector v1 = {1, 2, 3, 4, 5}; std::vector v2 = {4.4, 5.5, 6.6, 7.7}; std::println("v1: {::<3}", v1); std::println("v2: {}", v2); for (auto val : std::views::zip_transform(std::multiplies{}, v1, v2)) { std::print("{:.2f} ", val); } std::println(""); std::list coll = {5ms, 3ms, 20ms}; std::println("\ncoll: {}", coll); auto mult3 = [&] (auto a, auto b, auto dist) { return a * b * dist; }; for (auto val : std::views::zip_transform(mult3, v1, v2, coll)) { std::print("{} ", val); } std::println(""); }