#include <unordered_set>
#include <iostream>
struct node
{
std::string node_id;
double value;
node(std::string id, double val) : node_id(id), value(val) {}
};
int main() {
auto hash = [](const node& n){ return std::hash<std::string>()(n.node_id); };
auto equal = [](const node& n1, const node& n2){ return n1.node_id == n2.node_id; };
std::unordered_set<node, decltype(hash), decltype(equal)> set(8, hash, equal);
set.insert(node("1001", 100));
if (set.find(node("1001", 0)) != set.end())
std::cout << "1001 found" << std::endl;
return 0;
}
I2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnN0cnVjdCBub2RlCnsKICAgIHN0ZDo6c3RyaW5nIG5vZGVfaWQ7CiAgICBkb3VibGUgdmFsdWU7CiAgICBub2RlKHN0ZDo6c3RyaW5nIGlkLCBkb3VibGUgdmFsKSA6IG5vZGVfaWQoaWQpLCB2YWx1ZSh2YWwpIHt9Cn07CgppbnQgbWFpbigpIHsKICAgIGF1dG8gaGFzaCA9IFtdKGNvbnN0IG5vZGUmIG4peyByZXR1cm4gc3RkOjpoYXNoPHN0ZDo6c3RyaW5nPigpKG4ubm9kZV9pZCk7IH07CiAgICBhdXRvIGVxdWFsID0gW10oY29uc3Qgbm9kZSYgbjEsIGNvbnN0IG5vZGUmIG4yKXsgcmV0dXJuIG4xLm5vZGVfaWQgPT0gbjIubm9kZV9pZDsgfTsKICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxub2RlLCBkZWNsdHlwZShoYXNoKSwgZGVjbHR5cGUoZXF1YWwpPiBzZXQoOCwgaGFzaCwgZXF1YWwpOwoKICAgIHNldC5pbnNlcnQobm9kZSgiMTAwMSIsIDEwMCkpOwogICAgaWYgKHNldC5maW5kKG5vZGUoIjEwMDEiLCAwKSkgIT0gc2V0LmVuZCgpKQogICAgICAgIHN0ZDo6Y291dCA8PCAiMTAwMSBmb3VuZCIgPDwgc3RkOjplbmRsOwoJCiAgICByZXR1cm4gMDsKfQ==