c++ vector merge algorithm

#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;
}