"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > अनियंत्रित संग्रह में ट्यूपल्स के लिए एक जेनेरिक हैश फ़ंक्शन को कैसे लागू करें?

अनियंत्रित संग्रह में ट्यूपल्स के लिए एक जेनेरिक हैश फ़ंक्शन को कैसे लागू करें?

2025-03-26 को पोस्ट किया गया
ब्राउज़ करें:227

] हालांकि, कस्टम हैश फ़ंक्शन को परिभाषित किए बिना इन संग्रहों में कुंजी के रूप में टुपल्स का उपयोग करने से अप्रत्याशित व्यवहार हो सकता है।

How to Implement a Generic Hash Function for Tuples in Unordered Collections? 
इसे ठीक करने के लिए, एक दृष्टिकोण विशिष्ट टपल प्रकार के लिए एक हैश फ़ंक्शन को मैन्युअल रूप से परिभाषित करना है, जैसे:

टेम्पलेट संरचना std :: हैश > { size_t ऑपरेटर () (std :: tuple const & tuple) const {...} }; इसे स्वचालित करने के लिए, एक सामान्य हैश फ़ंक्शन को निम्नानुसार लागू किया जा सकता है: नेमस्पेस std { नेमस्पेस { // कोड को बढ़ावा देने से लिया गया टेम्पलेट इनलाइन शून्य hash_combine (std :: size_t & seed, t const & v) {...} // मैथियू एम से पुनरावर्ती टेम्पलेट कोड एम। टेम्पलेट :: मान - 1> संरचना हैशवेल्यूइम्पल {...}; } टेम्पलेट संरचना हैश > { size_t ऑपरेटर () (std :: tuple const & tuple) const {...} }; … एक मानकों-अनुपालन समाधान के लिए, एक कस्टम नेमस्पेस बनाया जा सकता है और हैश फ़ंक्शन को परिभाषित करने के लिए उपयोग किया जा सकता है:

नेमस्पेस my_hash { // आगे गैर-ट्यूपल प्रकार STD :: हैश को टेम्पलेट संरचना हैश {...}; // tuples के लिए अनुकूलित हैश प्रदान करें टेम्पलेट संरचना हैश > {...}; }

इस समाधान का उपयोग करते समय, अनियंत्रित संग्रह को स्पष्ट रूप से कस्टम हैश कार्यान्वयन को संदर्भित करना चाहिए:

std :: tuple , std :: हैश >, std :: exect_to > > परीक्षण;

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3