此代码来自C++入门 p.446:
return hash<string>() (sd.isbn());
Run Code Online (Sandbox Code Playgroud)
我不理解带有两对括号的返回表达式.本书前面没有类似的语法.
Nat*_*ica 52
std::hash是一种类型.你在这里做的是构建一个临时std::hash的hash<string>(),然后(sd.isbn())调用operator()临时传递它sd.isbn().
它会是一样的
std::hash<std::string> temp;
return temp(sd.isbn());
Run Code Online (Sandbox Code Playgroud)
有关使用具有operator()see:C++ Functors的对象及其用途的更多阅读