using T1 = int; using T2 = float; std::vector v1{1, 2, 3, 4, 5}; std::vector v2{1.f, 2.f, 4.f, 8.f, 16.f}; std::vector::type> result(v1.size()); std::transform(v1.cbegin(), v1.cend(), v2.cbegin(), result.begin(), [](T1 const& item1, T2 const& item2) { return item1 + item2; }); for (auto const& item : result) { std::cout << item << std::endl; }