#include <iostream>
#include <vector>
#include <algorithm>
std::vector<int> mergeVectors(const std::vector<int>& vec1, const std::vector<int>& vec2) {
std::vector<int> result;
result.reserve(vec1.size() + vec2.size());
auto it1 = vec1.begin();
auto it2 = vec2.begin();
while (it1 != vec1.end() && it2 != vec2.end()) {
if (it1 < it2) {
result.push_back(*it1);
++it1;
} else {
result.push_back(*it2);
++it2;
}
}
// Copy the remaining elements from vec1, if any
std::copy(it1, vec1.end(), std::back_inserter(result));
// Copy the remaining elements from vec2, if any
std::copy(it2, vec2.end(), std::back_inserter(result));
return result;
}
int main() {
std::vector<int> vec1 = {1, 3, 5, 7};
std::vector<int> vec2 = {2, 4, 6, 8, 10};
std::vector<int> merged = mergeVectors(vec1, vec2);
std::cout << "Merged Vector: ";
for (int num : merged) {
std::cout << num << " ";
}
return 0;
}