Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để hiểu cách tạo một bản đồ không có thứ tự của lớp do người dùng xác định trong C ++.
Để tạo một bản đồ không có thứ tự từ một lớp do người dùng xác định, chúng ta sẽ chuyển hàm băm vì phương thức lớp là đối số thứ ba.
Ví dụ
#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; }
Đầu ra
[Laxman, Prasad] = > 100 [kartik, kapoor] = > 100 [Ram, Singh] = > 200