gpt4 book ai didi

visual-c++ - 如何使用stdext::hash_map?

转载 作者:行者123 更新时间:2023-12-03 00:56:52 29 4
gpt4 key购买 nike

我想看一个如何正确重写 stdext::hash_compare 的简单示例,以便为我自己的用户定义类型定义新的哈希函数和比较运算符。我正在使用 Visual C++ (2008)。

最佳答案

这就是你可以做到的

class MyClass_Hasher {
const size_t bucket_size = 10; // mean bucket size that the container should try not to exceed
const size_t min_buckets = (1 << 10); // minimum number of buckets, power of 2, >0
MyClass_Hasher() {
// should be default-constructible
}
size_t operator()(const MyClass &key) {
size_t hash_value;
// do fancy stuff here with hash_value
// to create the hash value. There's no specific
// requirement on the value.
return hash_value;
}

bool operator()(const MyClass &left, const MyClass &right) {
// this should implement a total ordering on MyClass, that is
// it should return true if "left" precedes "right" in the ordering
}
};

然后,你就可以使用

stdext::hash_map my_map<MyClass, MyValue, MyClass_Hasher>

关于visual-c++ - 如何使用stdext::hash_map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/871838/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com