Vector 为什么将同一个向量散列两次会得到不同的散列码?
我想得到这个向量的散列码:Vector 为什么将同一个向量散列两次会得到不同的散列码?,vector,hash,rust,Vector,Hash,Rust,我想得到这个向量的散列码: 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()); 然而,结果是: 1358505576907263210 861879368656
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());
然而,结果是:
1358505576907263210
8618793686565720431
发生什么事了?我试过多次,结果总是一样的。我希望具有相同元素的向量散列到相同的散列代码。散列程序在
finish
后不会重置。为要计算的每个哈希值创建一个新的哈希值状态,并使用DefaultHasher::new()