मैं सी ++ में हैशटेबल या डिक्शनरी कार्यान्वयन की तलाश में हूं जिसमें सी # में एक की समान कार्यक्षमता है? क्या एसटीएल में इस तरह की वस्तु होती है और मैं इसका उपयोग कैसे करूं?शब्दकोश/H ++ में हैशटेबल ऑब्जेक्ट?
उत्तर
वास्तव में है, वास्तव में नेट के शब्दकोश/Hashtable, तुम क्या चाहते है hash_map या unordered_map (std::map
एक द्विआधारी पेड़ के रूप में कार्यान्वित किया जाता है) के रूप में ही हो सकता है, hash_map
एक विस्तार है एससी ++ एल के लिए। अधिकांश संकलक जो मुझे पता है hash_map
के साथ आते हैं, और स्पष्ट रूप से unordered_map
तक बढ़ते हैं जब तक कि सभी कंपाइलरों में सी ++ 0x उपलब्ध न हो, तो आपको बिना किसी परेशानी के इसका उपयोग करने में सक्षम होना चाहिए।
मुझे विश्वास है कि आप map
देख रहे हैं। अधिक के लिए here देखें।
एसटीएल std::map
नक्शा एक संतुलित पेड़ है, एक हैश कंटेनर नहीं है। – Joe
@joe - प्रश्न हैशैप * या * डिक्शनरी क्लास सी ++ एसटीएल में था, इसलिए 'std :: map' बिल फिट बैठता है। – gnud
@gnud: ओपी ने यह भी कहा कि "सी # में एक के लिए समान कार्यक्षमता है", जो केवल प्रदर्शन रहित विशेषताओं के बारे में बात कर रहे हैं, जो केवल unordered_map फिट बैठता है। – Joe
एसटीएल std::map
का उपयोग शब्दकोश बनाने के लिए किया जा सकता है। std::map
आमतौर पर एक खोज पेड़ के रूप में लागू किया जाता है, हैश तालिका नहीं। इसका मतलब यह है कि लुकअप और सम्मिलन में सी # 0 के HashMap
की तुलना में अलग-अलग गुणों की विशेषताएं हैं - बहुत बड़े मानचित्रों के लिए, औसत लुकअप धीमा हो जाएगा, खासकर यदि मानचित्र में ऑब्जेक्ट्स स्मृति में विभाजित हैं।
नए सी ++ मानक के TR1 में, आपके पास std::tr1::unordered_map
और std::tr1::unordered_multimap
है, जिसे आमतौर पर हैश तालिका का उपयोग करके कार्यान्वित किया जाएगा। यदि आपका कंपाइलर उन पुस्तकालयों को प्रदान नहीं करता है, तो आप http://www.boost.org/ से कार्यान्वयन का उपयोग कर सकते हैं।
फिर भी एक और विकल्प Google का sparse_hash
है।
एक std :: मानचित्र में एक लुकअप ** है ** ** ** हैश_मैप की तुलना में धीमी गति से नहीं है। केवल हैश_मैप का असम्बद्ध प्रदर्शन ओ (1) बनाम ओ (लॉग एन) है, लेकिन 1 के बड़े पर्याप्त मानों के लिए, लॉग n तेज हो सकता है। व्यावहारिक रूप से यह अक्सर मामला पर्याप्त होता है, _and_ एक अच्छा हैश-फ़ंक्शन ढूंढना एक सही ऑपरेटर को लागू करने से कहीं अधिक कठिन होता है <। – gimpf
बस पुनः पढ़ा, आपने कहा _often_, हमेशा नहीं, मेरी गलती। हालांकि, _often_ का तात्पर्य है कि ज्यादातर लोग सही हैश-फ़ंक्शंस का उपयोग करके लगभग 1000 प्रविष्टियों के साथ शब्दकोशों का उपयोग करते हैं। एक कंपनी के भीतर काम के क्षेत्र और कौशल स्तर के आधार पर यह वास्तव में असंभव हो सकता है। – gimpf
शायद 'धीमा हो जाएगा' आईएसए थोड़ा कठोर। मेरा मुद्दा मुख्य रूप से है कि उनके पास विभिन्न प्रदर्शन विशेषताएं हैं। – gnud
- 1. सी ++ में हैशटेबल?
- 2. हैशटेबल
- 3. हैशटेबल
- 4. हैशटेबल
- 5. हैशटेबल
- 6. हैशटेबल ओवरराइडिंग
- 7. अद्यतन हैशटेबल किसी अन्य हैशटेबल द्वारा?
- 8. PSObject, हैशटेबल और PSCustomObject
- 9. सी # हैशटेबल
- 10. जब हैशटेबल
- 11. जावा में ConcurrentHashMap और हैशटेबल
- 12. क्या एसटीएल में हैशटेबल है?
- 13. सी ++: हैशटेबल में एक कुंजी के रूप में सूचक
- 14. हैशटेबल के जावा सरणी
- 15. हैशटेबल बनाम शब्दकोश
- 16. .Net हैशटेबल - बनाम ContainsKey
- 17. अपाचे वेग: हैशटेबल?
- 18. जावा हैशटेबल 'put'
- 19. जावा हैशटेबल लोड फैक्टर
- 20. डिक्शनरी और हैशटेबल
- 21. Powerhell हैशटेबल मूल्य में कैसे संलग्न करें?
- 22. जावा में हैशटेबल से हटना और हटाना
- 23. मल्टीथ्रेडेड वातावरण में हैशमैप और हैशटेबल
- 24. पूर्णांक अंतराल के भीतर हैशटेबल कुंजी
- 25. जावा में हैश टेबल (हैशटेबल) में 'टी' क्यों नहीं है
- 26. जावास्क्रिप्ट वीएम ऑब्जेक्ट प्रॉपर्टी एक्सेस को कैसे लागू करता है? क्या यह हैशटेबल है?
- 27. मैं एक जेएलआईस्ट कैसे बना सकता हूं जिसमें स्ट्रिंग और ऑब्जेक्ट के हैशटेबल की प्रविष्टियां हों?
- 28. हैशटेबल और डिक्शनरी से संबंधित साक्षात्कार प्रश्न
- 29. जावा हैशटेबल # हैशकोड() कार्यान्वयन टूटा हुआ है?
- 30. एक लूप में सी # हैशटेबल को कैसे अपडेट करें?
सी ++ में हैश_मैप के रूप में ऐसा कोई कंटेनर नहीं है, और सी ++ 0x में नहीं होगा। सी ++ में हैश तालिका के नाम का नाम unordered_map है - से http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/topic/com.ibm.xlcpp9.aix.doc/standlib/stl_unordered_map.htm –
हां, मैंने अपना जवाब थोड़ा सा अपडेट किया ... –
आह, सी ++ मानकों की प्रक्रिया। रोम जलते समय हैशटेबल वर्ग के नाम के बारे में सोचना। – stusmith