fork download
  1. #include <cstdint>
  2. #include <map>
  3. #include <unordered_map>
  4. #include <ctime>
  5. #include <iostream>
  6.  
  7. union p_t {
  8. p_t(int64_t c) : k(c) {}
  9. p_t(int32_t a, int32_t b) : x(a), y(b) {}
  10. int64_t k;
  11. struct { int32_t x, y; };
  12. };
  13.  
  14. int main() {
  15. srand(time(0));
  16. std::map<decltype(p_t::k), int> m1;
  17. std::unordered_map<decltype(p_t::k), int> m2;
  18.  
  19. p_t p = p_t(rand(), rand());
  20.  
  21. m1[p.k] = rand();
  22. m2[p.k] = rand();
  23.  
  24. p_t k1 = m1.begin()->first;
  25. int v1 = m1.begin()->second;
  26. std::cout << k1.x << " " << k1.y << " " << v1 << " : " << k1.k << std::endl;
  27.  
  28. p_t k2 = m2.begin()->first;
  29. int v2 = m2.begin()->second;
  30. std::cout << k2.x << " " << k2.y << " " << v2 << " : " << k2.k << std::endl;
  31. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
2007411060 1840196398 1103258983 : 7903583349634410868
2007411060 1840196398 504505216 : 7903583349634410868