C ++中的HashCodeBuilder

时间:2009-08-21 09:41:38

标签: java c++ hashcode

如果我想在Java中为给定对象生成哈希,我知道的最简单方法是使用Apache Commons HashCodeBuilder

public class Person {
   String name;
   int age;
   boolean smoker;
   ...

   public int hashCode() {
     // you pick a hard-coded, randomly chosen, non-zero, odd number
     // ideally different for each class
     return new HashCodeBuilder(17, 37).
       append(name).
       append(age).
       append(smoker).
       toHashCode();
   }
 }

C ++中有类似内容吗?

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:0)

顺便说一句,hashCode方法不返回对象的标识符。这是一个普遍的误解。没有什么可以阻止同一类的2个对象返回相同的值。 hashCode用于散列表数据结构,而不是用于标识对象。这是两个不同的概念。