C ++ 0x添加hash<...>(...)。但是我無法找到一個(gè)hash_combine功能,如boost所示。實(shí)現(xiàn)這樣的最干凈的方法是什么?也許,使用C ++ 0x xor_combine?
3 回答

守著一只汪
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
好吧,就像助推器一樣去做:
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);
}
- 3 回答
- 0 關(guān)注
- 696 瀏覽
添加回答
舉報(bào)
0/150
提交
取消