我想得到这个向量的哈希码:
let vec = vec![1,2,3];
let tmp = vec![1,2,3];
let mut hash = DefaultHasher::new();
vec.hash(&mut hash);
println!("{}", hash.finish());
tmp.hash(&mut hash);
println!("{}", hash.finish());
但是输出是:
13585085576907263210
8618793686565720431
这是怎么回事?我已经尝试了多次并且总是得到相同的结果。我希望具有相同元素的向量散列为相同的散列码。
最佳答案
哈希器在完成
后不会重置。使用 DefaultHasher::new()
为您要计算的每个哈希值创建一个新的哈希器状态。
关于vector - 为什么对同一个向量进行两次哈希运算会得到不同的哈希码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43828984/