Quando si utilizza la libreria Boost, i fuction boost::hash_combine
funziona così:boost :: hash_combine vs semplice XOR'ing
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
http://www.boost.org/doc/libs/1_46_1/doc/html/hash/reference.html#boost.hash_combine
Qual è il vantaggio di questo approccio vs semplicemente XOR-ing?
Con XOR-ing, si può anche usare la funzione di hash per usare i contenitori non ordinati come chiavi, mentre questo dipende dall'ordine.
L'hash {1,2} diverso da {2,1} è spesso considerato una buona cosa ... –
Vedere http://stackoverflow.com/questions/8513911/how-to-create-a-good -hash-combinazione-con-64-bit-output-ispirato-by-boosthash-co; questo territorio è percosso a morte – sehe