unordered_mapC ++ के बारे में हाल ही में एक बात ने मुझे एहसास दिलाया कि मुझे unordered_mapज्यादातर मामलों में उपयोग करना चाहिए जहां मैंने mapपहले इस्तेमाल किया था, क्योंकि लुकअप की दक्षता ( amortized O (1) बनाम O (लॉग एन) )। ज्यादातर बार मैं एक मानचित्र का उपयोग करता हूं, मैं intया तो std::stringमुख्य प्रकार का उपयोग करता हूं ; इसलिए, मुझे हैश फ़ंक्शन की परिभाषा से कोई समस्या नहीं है। जितना मैंने इसके बारे में सोचा था, उतना ही मुझे एहसास हुआ कि मैं साधारण प्रकार के साथ चाबियाँ के मामले में एक std::mapसे अधिक उपयोग करने का कोई कारण नहीं पा सकता std::unordered_mapहूं - मैंने इंटरफेस पर एक नज़र डाली, और कोई भी नहीं पाया महत्वपूर्ण अंतर जो मेरे कोड को प्रभावित करेगा।
इसलिए सवाल: क्या उपयोग करने के लिए किसी भी असली कारण है std::mapसे अधिक std::unordered_mapकी तरह साधारण प्रकार के मामले में intऔर std::string?
मैं कड़ाई से प्रोग्रामिंग के दृष्टिकोण से पूछ रहा हूं - मुझे पता है कि यह पूरी तरह से मानक नहीं माना जाता है, और यह पोर्टिंग के साथ समस्याओं का सामना कर सकता है।
इसके अलावा, मुझे उम्मीद है कि एक सही जवाब "डेटा के छोटे सेट के लिए अधिक कुशल हो सकता है " क्योंकि एक छोटे से ओवरहेड (क्या यह सच है?) - इसलिए मैं उन मामलों पर सवाल सीमित करना चाहूंगा जहां राशि है? चाबियाँ गैर-तुच्छ हैं (> 1 024)।
संपादित करें: duh, मैं स्पष्ट (धन्यवाद GMan!) भूल गया - हाँ, नक्शे निश्चित रूप से ऑर्डर किए गए हैं - मुझे पता है कि, और अन्य कारणों की तलाश कर रहा हूं।

