fork(1) download
  1. #include <unordered_set>
  2. #include <iostream>
  3.  
  4. struct someType{
  5. std::string name;
  6. int code;
  7. };
  8.  
  9. int main() {
  10. auto hash = [](const someType& st){
  11. return std::hash<std::string>()(st.name) * 31 + std::hash<int>()(st.code);
  12. };
  13. auto equal = [](const someType& st1, const someType& st2){
  14. return st1.name == st2.name && st1.code == st2.code;
  15. };
  16. std::unordered_set<someType, decltype(hash), decltype(equal)> myset(8, hash, equal);
  17.  
  18. myset.insert({ "aaa", 123 });
  19. myset.insert({ "bbb", 321 });
  20. myset.insert({ "ccc", 213 });
  21.  
  22. for (auto const &st : myset)
  23. std::cout << st.name.c_str() << ", " << st.code << std::endl;
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
ccc, 213
bbb, 321
aaa, 123