C++ string 算哈希
时间: 2023-11-21 10:04:28 浏览: 29
C++中可以使用哈希表来实现字符串的哈希。哈希表是一种以键值对形式存储数据的数据结构,其中键是唯一的,通过哈希函数将键映射到表中的位置,从而实现快速查找。下面是一个示例代码,演示了如何使用BKDR哈希算法来计算字符串的哈希值:
```c++
#include <iostream>
#include <string>
using namespace std;
// 哈希函数
size_t BKDRHash(const string& str) {
size_t seed = 131; // 31 131 1313 13131 131313 etc..
size_t hash = 0;
for (size_t i = 0; i < str.length(); i++) {
hash = hash * seed + str[i];
}
return hash;
}
int main() {
string str = "hello world";
size_t hash = BKDRHash(str);
cout << "The hash value of \"" << str << "\" is: " << hash << endl;
return 0;
}
```
在上面的代码中,我们定义了一个BKDRHash函数,它接受一个字符串作为参数,并返回一个哈希值。BKDRHash函数使用了BKDR哈希算法,它是一种简单而高效的哈希算法,可以将字符串转换为一个整数,从而实现快速的哈希查找。在主函数中,我们定义了一个字符串,并使用BKDRHash函数计算了它的哈希值。