इस ट्यूटोरियल में, हम यह समझने के लिए एक प्रोग्राम पर चर्चा करेंगे कि C++ में जोड़ियों का एक अनियंत्रित नक्शा कैसे बनाया जाए।
अनियंत्रित नक्शे वे होते हैं जिनमें डिफ़ॉल्ट रूप से जोड़े के लिए हैश फ़ंक्शन नहीं होता है। यदि हम किसी विशेष जोड़ी के लिए हैश मान चाहते हैं, तो इसे स्पष्ट रूप से पारित करने की आवश्यकता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; //to hash any given pair struct hash_pair { template <class T1, class T2> size_t operator()(const pair<T1, T2>& p) const{ auto hash1 = hash<T1>{}(p.first); auto hash2 = hash<T2>{}(p.second); return hash1 ^ hash2; } }; int main(){ //explicitly sending hash function unordered_map<pair<int, int>, bool, hash_pair> um; //creating some pairs to be used as keys pair<int, int> p1(1000, 2000); pair<int, int> p2(2000, 3000); pair<int, int> p3(2005, 3005); um[p1] = true; um[p2] = false; um[p3] = true; cout << "Contents of the unordered_map : \n"; for (auto p : um) cout << "[" << (p.first).first << ", "<< (p.first).second << "] ==> " << p.second << "\n"; return 0; }
आउटपुट
Contents of the unordered_map : [1000, 2000] ==> 1 [2005, 3005] ==> 1 [2000, 3000] ==> 0