मैंने एक स्क्रिप्टिंग इंजन विकसित किया जिसमें कई अंतर्निहित फ़ंक्शंस हैं, इसलिए किसी भी फ़ंक्शन को कॉल करने के लिए, मेरा कोड सिर्फ if .. else if .. else if
दीवार की जांच कर रहा है लेकिन मैं एक और अधिक कुशल समाधान विकसित करना चाहता हूं ।फ़ंक्शन पॉइंटर्स के एक एसटीएल मानचित्र का उपयोग
क्या मुझे हैशप का उपयोग स्ट्रिंग्स के साथ कुंजी और पॉइंटर्स के रूप में करना चाहिए? एसटीएल मानचित्र का उपयोग करके मैं इसे कैसे कर सकता हूं?
संपादित: एक और मुद्दा यह है कि मेरे दिमाग में आया: एक मानचित्र का उपयोग संकलक कार्यों इनलाइन के लिए नहीं के लिए बाध्य करेगा, लेकिन मेरे अक्षम दृष्टिकोण किसी भी भूमि के ऊपर समारोह कॉल की आवश्यकता द्वारा उत्पन्न की है नहीं था जाहिर है, यह बस कोड निष्पादित करता है।
तो मुझे आश्चर्य है कि फ़ंक्शन कॉल द्वारा उत्पन्न ओवरहेड if..else
श्रृंखला होने से बेहतर होगा .. अन्यथा मैं रनटाइम पर एक वर्ण की जांच करके तुलना की संख्या को कम कर सकता हूं (लंबे समय तक तेज़ होगा)।
इसके अलावा वास्तव में 'unordered_map' जैसी असली हैश तालिका का उपयोग करने की आवश्यकता नहीं है। ऐसा नहीं होगा कि हैश टेबल कई तत्व प्रदर्शन प्रदर्शन लाएगा, अगर इस मामले में 'मैप' तेज था तो भी मुझे आश्चर्य नहीं होगा। – sth
दरअसल, मैंने कुछ समान सामान किए हैं और 'unordered_map' * बहुत * तेज था। मेरे पास केवल 10,000 चीजें थीं, और मैंने 'नक्शा' और 'unordered_map' दोनों का प्रोफाइल किया। – GManNickG
मैं अपेक्षा करता हूं कि "कई बिल्टिन फ़ंक्शंस" << 10.000'। ओपी के मामले में हैसमप के पास "सच्चा ओ (1)" होने का स्पष्ट लाभ है क्योंकि इसे बढ़ने की ज़रूरत नहीं है, और तारों के लिए टकराव मुक्त हैश का निर्माण किया जा सकता है। मुझे संदेह है कि यह कुछ 100 वस्तुओं के लिए 'मानचित्र' की तुलना में * महत्वपूर्ण * अंतर बनाता है। – peterchen