Avatar ·

सरल कुंजियों (int, string) के लिए map के पास unordered_map से कोई लाभ हैं?

सभी को नमस्ते! मैं लगभग एक साल से C++ में कोड लिख रहा हूँ, और एक सवाल मुझे परेशान कर रहा है। मान लीजिए, मुझे एक शब्दकोश स्टोर करना है जहाँ कुंजियाँ int या string हैं। मैं जानता हूँ कि `std::map` को red-black tree के रूप में लागू किया गया है (प्रति ऑपरेशन O(log n)), और `std::unordered_map` को hash table के रूप में (औसतन O(1))। सरल कुंजियों के लिए `unordered_map` हमेशा तेज़ लगता है, और मैं अक्सर देखता हूँ कि इसे शुरुआती लोगों को सुझाया जाता है। लेकिन StackOverflow पर मुझे एक चर्चा मिली जहाँ अनुभवी डेवलपर्स का दावा है कि `map` के अपने फायदे हैं। मैंने एक छोटा टेस्ट लिखने की कोशिश की: ```cpp #include #include #include #include int main() { std::map ordered; std::unordered_map unordered; // 100000 एलिमेंट भरते हैं for (int i = 0; i < 100000; ++i) { ordered[i] = "value" + std::to_string(i); unordered[i] = "value" + std::to_string(i); } // ... (बाकी कोड) } ```