#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
struct hasher // Just an example of hash function
{
size_t operator()(const std::vector<int>& val) const
{
size_t ans = 0;
std::hash<int> hasher;
for (auto v : val)
{
ans = ans * 2654435761 + hasher(v);
}
return ans;
}
};
int main()
{
unordered_set<vector<int>, hasher> si;
si.insert({ 1, 2 });
si.insert({ 3, 4 });
si.erase({ 1, 2 });
if (si.find({ 1, 2 }) != si.end())
{
cout << "{1, 2} have found" << endl;
}
if (si.find({ 3, 4 }) != si.end())
{
cout << "{3, 4} have found" << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgaGFzaGVyIC8vIEp1c3QgYW4gZXhhbXBsZSBvZiBoYXNoIGZ1bmN0aW9uCnsKICBzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiB2YWwpIGNvbnN0CiAgewogICAgc2l6ZV90IGFucyA9IDA7CiAgICBzdGQ6Omhhc2g8aW50PiBoYXNoZXI7CiAgICBmb3IgKGF1dG8gdiA6IHZhbCkKICAgIHsKICAgICAgYW5zID0gYW5zICogMjY1NDQzNTc2MSArIGhhc2hlcih2KTsKICAgIH0KICAgIHJldHVybiBhbnM7CiAgfQp9OwoKaW50IG1haW4oKQp7CiAgdW5vcmRlcmVkX3NldDx2ZWN0b3I8aW50PiwgaGFzaGVyPiBzaTsKICBzaS5pbnNlcnQoeyAxLCAyIH0pOwogIHNpLmluc2VydCh7IDMsIDQgfSk7CiAgc2kuZXJhc2UoeyAxLCAyIH0pOwogIGlmIChzaS5maW5kKHsgMSwgMiB9KSAhPSBzaS5lbmQoKSkKICB7CiAgICBjb3V0IDw8ICJ7MSwgMn0gaGF2ZSBmb3VuZCIgPDwgZW5kbDsKICB9CiAgaWYgKHNpLmZpbmQoeyAzLCA0IH0pICE9IHNpLmVuZCgpKQogIHsKICAgIGNvdXQgPDwgInszLCA0fSBoYXZlIGZvdW5kIiA8PCBlbmRsOwogIH0KICByZXR1cm4gMDsKfQ==