इस ट्यूटोरियल में, हम यह समझने के लिए एक प्रोग्राम पर चर्चा करेंगे कि C++ में यूजर डिफाइन्ड क्लास का एक अनियंत्रित नक्शा कैसे बनाया जाए।
उपयोगकर्ता परिभाषित वर्ग से एक अनियंत्रित नक्शा बनाने के लिए, हम हैश फ़ंक्शन को कक्षा विधि के रूप में तीसरे तर्क के रूप में पास करेंगे।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//objects of class to be used as key values
struct Person {
string first, last;
Person(string f, string l){
first = f;
last = l;
}
bool operator==(const Person& p) const{
return first == p.first && last == p.last;
}
};
class MyHashFunction {
public:
//using sum of length as hash function
size_t operator()(const Person& p) const{
return p.first.length() + p.last.length();
}
};
int main(){
unordered_map<Person, int, MyHashFunction> um;
Person p1("kartik", "kapoor");
Person p2("Ram", "Singh");
Person p3("Laxman", "Prasad");
um[p1] = 100;
um[p2] = 200;
um[p3] = 100;
for (auto e : um) {
cout << "[" << e.first.first << ", "<< e.first.last<< "] = > " << e.second << '\n';
}
return 0;
} आउटपुट
[Laxman, Prasad] = > 100 [kartik, kapoor] = > 100 [Ram, Singh] = > 200