Gabungan Nilai Hash dalam C 0x
Dalam C 0x, penambahan hash<...>(...) memperkenalkan alat yang berharga untuk memanipulasi nilai cincang. Walau bagaimanapun, ketiadaan fungsi hash_combine yang serupa dengan yang disediakan dalam Boost telah menyebabkan pengaturcara mencari pendekatan alternatif. Artikel ini meneroka pelaksanaan yang bersih menggunakan xor_combine C 0x.
Inti penyelesaian terletak pada meniru pelaksanaan daripada Boost:
template <class T> inline void hash_combine(std::size_t& seed, const T& v) { std::hash<T> hasher; seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); }
Fungsi ini menggunakan std::hash
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Nilai Hash dengan Berkesan dalam C 0x?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!