Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để tạo một tập hợp không có thứ tự của lớp hoặc cấu trúc do người dùng xác định trong C ++?

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 tập hợp không có thứ tự gồm lớp hoặc cấu trúc do người dùng xác định trong C ++.

Đối với điều này, chúng tôi sẽ tạo một kiểu cấu trúc và sau đó so sánh hai kiểu cấu trúc với hàm do người dùng xác định để lưu trữ hàm băm.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
//defined structure
struct Test {
   int id;
   bool operator==(const Test& t) const{
      return (this->id == t.id);
   }
};
//defined class for hash function
class MyHashFunction {
   public:
      size_t operator()(const Test& t) const{
         return t.id;
   }
};
int main(){
   Test t1 = { 110 }, t2 = { 102 }, t3 = { 101 }, t4 = { 115 };
   //defining unordered set
   unordered_set<Test, MyHashFunction> us;
   us.insert(t1);
   us.insert(t2);
   us.insert(t3);
   us.insert(t4);
   for (auto e : us) {
      cout << e.id << " ";
   }
   return 0;
}

Đầu ra

115 101 110 102