首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"std::hash<Key>()(k1)“的语义

"std::hash<Key>()(k1)“的语义
EN

Stack Overflow用户
提问于 2022-02-06 17:12:35
回答 1查看 107关注 0票数 -1

正如在std::hash上所述,std::散列函数的实例满足某些属性。其中之一,属性4完全如下:对于两个相等的参数k1k2std::hash<Key>()(k1) == std::hash<Key>()(k2)

在哪里可以找到解释std::hash<Key>()(k1)的语义?

EN

回答 1

Stack Overflow用户

发布于 2022-02-06 18:51:15

在表达式std::hash()(k1)中,std::hash()部件构造一个对象,该对象具有为k1类型定义的operator(),然后立即调用k1上的operator()。一个令人困惑的事情是,std::hash是一个模板,在这样编写的表达式中,没有显式的类型,模板参数被推断为k1的类型。

基本上,要阅读这些代码,您需要注意存在并可以将任意参数类型重载为类的成员函数。

这里需要()std::hash之后的{}来实例化一个临时对象,如C++命名需求: DefaultConstructible

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71009637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档