How To Find the Intersection of Two Multimaps in C++?
Last Updated :
01 Mar, 2024
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++
#include <iostream>
#include <map>
using namespace std;
int main()
{
multimap< int , string> multi1 = { { 1, "Java" },
{ 2, "Python" },
{ 3, "C++" },
{ 4, "JavaScript" } };
multimap< int , string> multi2 = { { 2, "Python" },
{ 4, "JavaScript" },
{ 5, "TypeScript" } };
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 ;
}
}
}
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.
Share your thoughts in the comments
Please Login to comment...