मुझे std :: map
का उपयोग करने पर कुछ प्रश्न हैं:
- < Li>
-
ऊपर दिए गए उदाहरण में, कॉल करने के लिए
सम्मिलित ()
क्यों अतिभारित एक कोडक त्रुटि उत्पन्न है[ ]
ऑपरेटर सही ढंग से काम करता है?std :: map
-
में आइटम डालने के लिए इनमें से कौन सी विधियों की अनुशंसा की जाती है? मैं समझता हूं कि जब
find () पद्धति का उपयोग
std :: map
वर्ग में किया जाता है, यह कंटेनर में अनुक्रमिक खोज नहीं कर रहा है, लेकिन कुछ लॉगरिदमिक खोज कर रही है जो अनुक्रमिक खोज की तुलना में तेज़ हो जाएगा क्या यह समझना सही है?
एक enum
को std :: map
में कुंजी के रूप में एक अच्छा अभ्यास का उपयोग कर रहा है? निम्नलिखित कोड पर विचार करें:
आकार का आकार {सर्किल, आयत}; Int main (int argc, char * argv []) {std :: map & lt; आकार, std :: string & gt; strMap; // strMap.insert (आकार :: सर्कल, "सर्किल"); // यह स्ट्रैम को संकलित नहीं करेगा [आकार :: सर्कल] = "सर्किल"; // लेकिन यह 0 पर काम करेगा; }
- एक key_type खुद से बुरा नहीं है ( संपादित करें ) लेकिन अगर आप केवल अनुक्रमिक मान-मान का उपयोग करते हैं, तो ओ (1) एक्सेस के साथ एक
std :: vector
भी बेहतर होता है। - < कोड> डालें इस तरह से उपयोग किया जाना चाहिए:
mapVar.insert (make_pair (कुंजी, मान));
यह भी देखें। - हाँ,
std :: नक्शा
में ओ (लॉग (एन)) लुकअप है, जैसा मानक की गारंटी है, और यह ओ (एन) से भी तेज है यदि n पर्याप्त रूप से अधिक है।
Comments
Post a Comment