Trong hướng dẫn này, ta sẽ thảo luận chương trình để hiểu cách tạo unordered_set của class hoặc struct tự định nghĩa trong C++.
Để làm được điều này, ta tạo một kiểu struct và so sánh hai kiểu struct với hàm do người dùng định nghĩa để lưu hàm băm (hash function).
Ví dụ
#include <bits/stdc++.h>
using namespace std;
struct Test {
int id;
bool operator==(const Test& t) const {
return (this->id == t.id);
}
};
class MyHashFunction {
public:
size_t operator()(const Test& t) const {
return t.id;
}
};
int main() {
Test t1 = {110}, t2 = {102}, t3 = {101}, t4 = {115};
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;
}
Kết quả
115 101 110 102