你能告诉我如何实现文本中计算碰撞的功能吗?假设在unordered_map<size_t, unordered_set<string>>
Hasher中通过哈希存储单词作为参数传递。冲突是指读取一个之前没有遇到过的单词,但哈希值与之前的哈希值匹配的情况。
template <typename Hash>
int CollisionsCounter(const Hash& hasher, istream& text) {
}
struct Hasher {
size_t operator() (const string& str) const {
size_t result = 0;
for (char c : str) {
result += static_cast<size_t>(c);
}
return result;
}
};
int main() {
hash<string> hasher;
int collisions = CollisionsCounter(hasher, cin);
cout << "total collisions: "s << collisions << endl;
} ```