#include <iostream>
#include <vector>
void print_vector(const std::vector<int>& vec) {
for (size_t i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
}
std::vector<int> merge_two_vectors_into_one(const std::vector<int>& num1, const std::vector<int>& num2) {
std::vector<int> numbers(num1.size() + num2.size());
size_t i = 0, j = 0, k = 0;
while (i < num1.size() && j < num2.size()) {
if (num1[i] <= num2[j]) {
numbers[k] = num1[i];
i++;
} else {
numbers[k] = num2[j];
j++;
}
k++;
}
while (i < num1.size()) {
numbers[k] = num1[i];
i++;
k++;
}
while (j < num2.size()) {
numbers[k] = num2[j];
j++;
k++;
}
return numbers;
}
int main() {
std::vector<int> num1 = { 7, 3, 2, 9, 1 };
std::vector<int> num2 = { 5, 8, 6, 4, 0, 11, 10, 12 };
std::vector<int> numbers = merge_two_vectors_into_one(num1, num2);
print_vector(numbers);
}
/*
run:
5 7 3 2 8 6 4 0 9 1 11 10 12
*/