How do I merge two containers efficiently with std::vector in performance-sensitive code?

This guide discusses how to efficiently merge two std::vector containers in C++, focusing on performance-sensitive scenarios. We'll explore techniques that minimize copying and maximize efficiency.

merge, std::vector, C++, performance, efficiency, containers, programming

// Efficiently merge two std::vector containers
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vector1 = {1, 2, 3, 4, 5};
    std::vector<int> vector2 = {6, 7, 8, 9, 10};

    // Resize vector1 to accommodate elements from vector2
    vector1.reserve(vector1.size() + vector2.size());

    // Move elements from vector2 to vector1
    vector1.insert(vector1.end(), std::make_move_iterator(vector2.begin()), std::make_move_iterator(vector2.end()));

    // Clear vector2 after moving
    vector2.clear();

    // Output the merged vector
    for (const auto& val : vector1) {
        std::cout << val << ' ';
    }
    std::cout << std::endl;

    return 0;
}
    

merge std::vector C++ performance efficiency containers programming