vector - 为什么对同一个向量进行两次哈希运算会得到不同的哈希码?

标签 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());

但是输出是:

13585085576907263210
8618793686565720431

这是怎么回事?我已经尝试了多次并且总是得到相同的结果。我希望具有相同元素的向量散列为相同的散列码。

最佳答案

哈希器在完成 后不会重置。使用 DefaultHasher::new() 为您要计算的每个哈希值创建一个新的哈希器状态。

关于vector - 为什么对同一个向量进行两次哈希运算会得到不同的哈希码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43828984/

相关文章:

C++ 设计 : Template Function for Random Deletion by Index for list & vector

c++ - 为什么我在这里得到一个 vector 下标超出范围的错误?

c++ - STL binary_search 给出编译器错误

java - 如果我不在 java 中的对象中使用哈希表或哈希集,我是否需要实现 hashcode()

vector - 如何将 Vec<String> 扩展为 HashMap 值?

php - 解密使用 wp_hash() 生成的散列字符串

c# - JavaScript 中的 SHA256Cng

rust - 如何在Rust Diesel中使用时间戳和时间间隔进行算术运算

rust - 如何在Rust中使用Mutex创建关键部分?

rust - 如何重用类似特征实现的代码?