typedef map<KeyType, ValType> KVMap;
KVMap kvmap;
kvmap.insert(KVMap::value_type(key, val));
kvmap.insert(make_pair(key, val));
ऊपर दिए गए विकल्पों में से कौन सा एक एसटीएल नक्शा करने के लिए सम्मिलित करने के लिए हमेशा तेज है? क्यूं कर?सी ++: value_type बनाम make_pair, जो मानचित्र डालने के लिए तेज़ है?
नोट: मुझे अच्छी तरह पता है कि insert()
मानचित्र पर कुंजी-मूल्य जोड़े जोड़ने (अपडेट नहीं) जोड़ने के लिए []=
का उपयोग करने से तेज़ है। कृपया मान लें कि मेरी क्वेरी जोड़ने के बारे में है, अद्यतन नहीं है। इसलिए मैंने इसे insert()
तक सीमित कर दिया है।
जब तक आपके प्रोग्राम में नक्शे पर आवेषण शामिल नहीं होते हैं, तो क्या आपको सच में लगता है कि कोई गति अंतर ध्यान देने योग्य होगा? धीमे धब्बे वास्तव में क्या हैं यह देखने के लिए आपको अपने तैयार, स्वच्छ, रखरखाव योग्य कार्यक्रम को प्रोफ़ाइल करने के लिए प्रोफ़ाइल प्राप्त करनी चाहिए। और इनलाइनिंग के बाद, कोई अंतर नहीं होना चाहिए। – GManNickG
जीएमएन: अंतर छोटा था। कार्ल के जवाब पर मेरी टिप्पणी देखें। –