c++ इस कोड खंड में कोष्ठक के दो जोड़े को कैसे समझें?



hash (1)

यह कोड सी ++ प्राइमर पी 446 से है:

return hash<string>() (sd.isbn());

मैं ब्रांड्स के दो जोड़े के साथ रिटर्न एक्सप्रेशन को समझ नहीं पा रहा हूं। पुस्तक के सामने कोई समान वाक्यविन्यास नहीं है।


std::hash एक वर्ग प्रकार है। आप यहां क्या कर रहे हैं hash<string>() और फिर (sd.isbn()) साथ एक अस्थायी std::hash का निर्माण कर रहा है, जिसे operator() को अस्थायी रूप से पास करने के लिए sd.isbn()

यह वही होगा

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

ऑब्जेक्ट्स operator() को ऑब्जेक्ट्स का उपयोग करने के बारे में अधिक पढ़ने के लिए: C ++ Functors - और उनके उपयोग





hash