// C++ program to demonstrate
// the working of a multimap of
// pairs.
#include <bits/stdc++.h>
using namespace std;
// Function to print multimap elements
void print(multimap<pair<int, int>,
bool>& myContainer)
{
cout << "Key(pair of integers)" <<
" " <<
"Value(boolean)\n\n";
for (auto pr : myContainer)
{
pair<int, int> myPair = pr.first;
// pr points to current pair of myContainer
cout << '[' << myPair.first << " , " <<
myPair.second << ']' <<
" " <<
pr.second << '\n';
}
}
// Driver code
int main()
{
// Declaring a multimap
// Key is of pair<int, int> type
// Value is of bool type
multimap<pair<int, int>, bool> myContainer;
// Creating some pairs to be used
// as keys
pair<int, int> pair1;
pair1 = make_pair(100, 200);
pair<int, int> pair2;
pair2 = make_pair(200, 300);
pair<int, int> pair3;
pair3 = make_pair(300, 400);
pair<int, int> pair4;
pair4 = make_pair(100, 200);
// Since each element is a pair on
// its own in a multimap. So, we
// are inserting a pair
// Note that [] operator doesn't working
// in case of a multimap
myContainer.insert(pair<pair<int, int>,
bool>(pair1, true));
myContainer.insert(pair<pair<int, int>,
bool>(pair2, false));
myContainer.insert(pair<pair<int, int>,
bool>(pair3, true));
myContainer.insert(pair<pair<int, int>,
bool>(pair4, false));
// Calling print function
print(myContainer);
return 0;
}