Avatar ·

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

सभी को नमस्ते! मैं लगभग एक साल से C++ में कोड लिख रहा हूँ, और एक सवाल मुझे परेशान करता है। मान लीजिए, मुझे एक डिक्शनरी स्टोर करनी है जहाँ कुंजियाँ int या string हैं। मैं जानता हूँ कि `std::map` को रेड-ब्लैक ट्री (प्रति ऑपरेशन O(log n)) के रूप में इम्प्लीमेंट किया गया है, और `std::unordered_map` को हैश टेबल (औसतन 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); } // कुछ ऑपरेशन परफॉर्म करते हैं // ... } ```