Jak poprawnie zmieścić niestandardową strukturę?

W języku C ++ istnieje domyślny szablon funkcji skrótustd::hash<T> dla najbardziej prostych typów, takich jakstd::string, intitd. Przypuszczam, że te funkcje mają dobrą entropię, a odpowiadający rozkład losowej zmiennej jest statystycznie jednolity. Jeśli tak nie jest, udajmy, że tak jest.

Następnie mam strukturę:

struct CustomType {
  int field1;
  short field2;
  string field3;
  // ...
};

Chcę to skreślić, używając oddzielnych skrótów niektórych pól, powiedzmy,std::hash(field1) istd::hash(field2). Oba skróty są w zestawie możliwych wartości typusize_t.

Co to jest dobra funkcja haszująca, która może połączyć oba te wyniki i odwzorować je z powrotemsize_t?

questionAnswers(2)

yourAnswerToTheQuestion