boost::hash_combine
টেমপ্লেট ফাংশন একটি হ্যাশ (যাকে বলা হয় একটি রেফারেন্স লাগে seed
) এবং একটি বস্তু v
। ডক্স অনুসারে seed
এটি হ্যাশ v
বাই এর সাথে একত্রিত হয়েছে
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
আমি দেখতে পাচ্ছি যে এটি নির্বিচারবাদী। আমি দেখি কেন একটি এক্সওআর ব্যবহৃত হয়।
আমি বাজি দিয়েছি যে সংযোজনটি একই সাথে একই মানগুলিকে ম্যাপিং করতে ব্যাপকভাবে পৃথক হয় যাতে হ্যাশ টেবিলগুলি ভেঙে যায় না, তবে কেউ কি যাদু ধ্রুবকটি ব্যাখ্যা করতে পারেন?