Open In App

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

Last Updated : 01 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

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}

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.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads