Intersection of Two Multimaps With Common Values in C++

To find the intersection between two multimaps in C++ STL, we have to iterate through each element using a loop in the first multimap and search for the corresponding elements in the second multimap. If the matching element is found then it is inserted into the result multimap.

C++ Program to Find the Intersection of Two Multimaps

The below program demonstrates how we can find the intersection between two multimaps in C++.

C++




// C++ Program to illustrate how to find the intersection of
// two multimaps
#include <iostream>
#include <map>
  
using namespace std;
  
int main()
{
    // Defining multimap1
    multimap<int, string> multi1 = { { 1, "Java" },
                                     { 2, "Python" },
                                     { 3, "C++" },
                                     { 4, "JavaScript" } };
  
    // Defining multimap2
    multimap<int, string> multi2 = { { 2, "Python" },
                                     { 4, "JavaScript" },
                                     { 5, "TypeScript" } };
  
    // Finding Intersection between multimap1 and multimap2
    multimap<int, string> res;
    for (const auto& pair : multi1) {
        auto range = multi2.equal_range(pair.first);
        for (auto it = range.first; it != range.second;
             ++it) {
            if (it->second == pair.second) {
                res.insert(*it);
                break;
            }
        }
    }
  
    // Printing intersection result
    cout << "Intersection MultiMap:" << endl;
    for (const auto& pair : res) {
        cout << pair.first << ": " << pair.second << endl;
    }
  
    return 0;
}


Output

Intersection MultiMap:
2: Python
4: JavaScript

Time Complexity: O(min(N, M), where N is the number of elements in multi1 and M is the number of elements in multi2.
Auxilliary Space: O(K), where K is the number of common elements.



How To Find the Intersection of Two Multimaps in C++?

In C++, finding the intersection of two multimaps consists of identifying the common elements that are shared between both collections, containing key-value pairs. In this article, we will learn how to find the intersection of two multimaps in C++ STL.

Example:

Input:
multimap1 = {1, "Java"}, {2, "Python"}, {3, "C++"}, {4, "JavaScript"}
mutlimap2 = {2, "Python"}, {4, "JavaScript"}, {5, "TypeScript"}

Output:
Intersection:
{2: Python}
{4: JavaScript}

Similar Reads

Intersection of Two Multimaps With Common Values in C++

To find the intersection between two multimaps in C++ STL, we have to iterate through each element using a loop in the first multimap and search for the corresponding elements in the second multimap. If the matching element is found then it is inserted into the result multimap....

Contact Us