std::hash<string>()(...)是什么意思,怎么理解?


这个问题有人也在百度知道问了,但回答我看不懂。希望能仔细说下。

鄙人阅读C++ Primer(第五版)396页时遇到的,代码是:


 size_t hasher(const Sales_data &sd)
{
    return hash<string>()(sd.isbn());
}

请问return后面是什么意思?
为什么hash<string>后面有一对圆括号?我从来没见过这种形式的玩意儿。
为什么圆括号后面还有括号?
我主要不懂以上两点

C++

南普世北河蟹 9 years, 4 months ago

hash
第一对括号生成一个hasher,然后第二对括号立即调用
相当于


 std::hash<string> hasher;
return hasher(sd.isbn());

XOX.... answered 9 years, 4 months ago

Your Answer