gpt4 book ai didi

c++ - 转换为模板类型

转载 作者:太空狗 更新时间:2023-10-29 19:57:09 25 4
gpt4 key购买 nike

Stroustrup 教授在他的《C++ 编程语言》第 4 版一书中使用的语法是什么?在第 917 页描述散列函数和相等函数时。

std::hash<int>{}(variable) //variable is of type int

这是从 int 到 hash 的转换吗?但为什么哈希后那些花括号?我知道将它们放在变量 default 之后会对其进行初始化。至于转换,我们通常像 double (int) 一样转换!

最佳答案

让我们打破std::hash<int>{}(variable)分解成它的组成部分:

  • std::hash<int> - 这是类型,它是 standard hash template 的特定类型.

  • {} - 这会创建一个 std::hash<int> 的实例类。

  • (variable) - 这称为 function call operator在先前创建的实例上,传递 variable作为参数。

在表达式之后,std::hash<int> 的实例对象被破坏。

例如:

std::size_t hash = std::hash<int>{}(variable);

大致相当于

std::size_t hash;
{
std::hash<int> hashing_temporary_object;
hash = hashing_temporary_object(variable);
// The above call is equal to hashing_temporary_object.operator()(variable)
}

关于c++ - 转换为模板类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363567/

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