Write a function interleave which takes two vectors of the s
Solution
#include <iostream>
#include<vector>
using namespace std;
vector<int> interlace_vectors1(const vector<int>& v1, const vector<int>& v2)
{
vector<int> result;
for(size_t n = 0; n < v1.size(); ++n)
{
result.push_back(v1[n]);
result.push_back(v2[n]);
}
return result;
}
vector<int> interlace_vectors2(const vector<int>& v1, const vector<int>& v2)
{
vector<int> result;
if(v1.size() ==0)
return v2;
if(v2.size() ==0)
return v1;
for(size_t n = 0; n < max(v1.size(), v2.size()); ++n)
{
if(n < v1.size()) result.push_back(v1[n]);
if(n < v2.size()) result.push_back(v2[n]);
}
return result;
}
int main()
{
size_t size = 10;
std::vector<int> a1(size);
std::vector<int> a2(size);
a1={1,2,3};
a2={11,22,33,44,55};
vector<int> result = interlace_vectors2(a1,a2);
for(size_t n = 0; n < result.size(); ++n)
{
cout << result[n] << \" \";
}
return 0;
}
