c++ - Are there any performance differences between std::copy and the container's copy constructor? -
std :: copy
एक अधिक सामान्य दृष्टिकोण है क्योंकि यह भिन्न मूल्य प्रकारों के साथ कंटेनरों को संभाल सकता है ( जैसे std :: vector & lt; float & gt;
से std :: vector :: & lt; double & gt;
) से कॉपी करें। लेकिन जब कंटेनरों दोनों के लिए वैल्यू टाइप समान होता है, तो क्या इससे कोई फर्क नहीं पड़ता कि क्या मैं std :: copy
के बजाय प्रतिलिपि कन्स्ट्रक्टर का उपयोग करता हूं
प्रदर्शन के बारे में चिंता न करें, वे सभी सुपर बंद होनी चाहिए इसके बजाय:
- यदि आप एक नया कंटेनर बना रहे हैं, तो प्रतिलिपि कन्स्ट्रक्टर या दो-इटरेटर कन्स्ट्रक्टर का उपयोग करें (यदि अलग तत्व प्रकार)।
- फिर से एक मौजूदा कंटेनर की जगह (निर्दिष्ट), उपयुक्त असाइनमेंट ऑपरेटर या
असाइन करें
सदस्य का उपयोग करें। - यदि आप तत्वों के एक सबसेट को बदल रहे हैं, तो
std :: copy
।
आप जो भी करने की कोशिश कर रहे हैं उसे सही तरीके से प्रस्तुत करने के द्वारा, आप कंपाइलर को अपने कोड को अनुकूलित करने के लिए सबसे संभावित जानकारी देते हैं (उदाहरण के लिए निर्माण सीधे एक मौजूदा कंटेनर से, यह स्मृति के बारे में बिल्कुल ठीक पहले आवंटित कर सकता है)।
Comments
Post a Comment