gpt4 book ai didi

c++ - boost::unordered_map -- 需要指定自定义哈希函数来散列 std::set 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:15 24 4
gpt4 key购买 nike

我想使用 boost::unordered_map<key,value> , 其中keystd::set<int> .由于一组整数不是内置类型,我假设我必须提供我自己的散列函数(或者,更确切地说,我正在考虑使用 boost's hash_range )。

但是,现在我尝试像这样初始化散列映射,既不提供散列函数也不提供相等谓词——而且 gcc 没有提示。这里发生了什么? boost 是否足够聪明,可以自行散列所有 STL 容器?这会比我使用自定义哈希函数慢吗?使用 boost::hash_range 怎么样? ?

提前致谢。

最佳答案

根据 the Boost documentation :

the default hash function is Boost.Hash

并且,根据 the documentation for Boost.Hash ,为标准容器提供了默认哈希函数。因此,已经有一个为 std::set 编写的散列函数。 Boost 哈希容器不够智能,无法知道如何自动对集合进行哈希处理,但它们足够智能,可以使用已经提供的实现。

希望这对您有所帮助!

关于c++ - boost::unordered_map -- 需要指定自定义哈希函数来散列 std::set<int> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7457992/

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