Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में कॉपी-एंड-स्वैप मुहावरा

असाइनमेंट में 2 चरण होते हैं, किसी वस्तु की पुरानी स्थिति को तोड़ना और उसके लिए एक नया राज्य बनाना। विनाशक का उपयोग पहले चरण के लिए किया जाता है और प्रतिलिपि बनाने वाला दूसरा चरण करता है।

इन दोनों को लागू करना सीधा है। लेकिन जब असाइनमेंट ऑपरेटर को ओवरलोड किया जाता है, तो इसे लागू करना काफी मुश्किल हो सकता है। कॉपी और स्वैपीडियोम उसी का समाधान है।

यह मुहावरा डेटा की स्थानीय प्रतिलिपि बनाने के लिए कॉपी-कंस्ट्रक्टर का उपयोग करता है। इसके बाद यह पुराने डेटा को नए डेटा के साथ स्वैप फ़ंक्शन का उपयोग करके स्वैप करता है। अस्थायी प्रतिलिपि को विनाशक का उपयोग करके नष्ट कर दिया जाता है। अंत में हमारे पास नए डेटा की केवल एक प्रति है।

तो, कॉपी-एंड-स्वैप मुहावरे को तीन चीजों की आवश्यकता होती है

  • कॉपी-कंस्ट्रक्टर
  • कॉपी-कंस्ट्रक्टर
  • विनाशक
  • स्वैप फ़ंक्शन।

स्वैप फ़ंक्शन एक गैर-फेंकने वाला फ़ंक्शन है जो एक वर्ग, सदस्य की दो वस्तुओं को स्वैप करता है।

नोट :आपको std::swap फ़ंक्शन का उपयोग नहीं करना चाहिए क्योंकि यह आंतरिक रूप से कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर का उपयोग करता है।


  1. सी ++ प्रोग्राम स्ट्रिंग्स कॉपी करने के लिए

    एक स्ट्रिंग एक आयामी वर्ण सरणी है जिसे एक शून्य वर्ण द्वारा समाप्त किया जाता है। एक स्ट्रिंग के मान को दूसरी स्ट्रिंग में कॉपी किया जा सकता है। यह या तो strcpy() फ़ंक्शन का उपयोग करके किया जा सकता है जो एक मानक लाइब्रेरी फ़ंक्शन है या इसके बिना। strcpy() फ़ंक्शन का उपयोग किए बिना एक स्ट्रिंग को कॉप

  1. C++ प्रोग्राम दो नंबर स्वैप करने के लिए

    दो नंबरों को स्वैप करने के लिए प्रोग्राम बनाने के दो तरीके हैं। एक में एक अस्थायी चर का उपयोग करना शामिल है और दूसरा तरीका तीसरे चर का उपयोग नहीं करता है। इन्हें विस्तार से इस प्रकार समझाया गया है - अस्थायी चर का उपयोग करके दो नंबरों को स्वैप करने का कार्यक्रम एक अस्थायी चर का उपयोग करके दो नंबरों

  1. C++ में कॉपी-एंड-स्वैप मुहावरा क्या है?

    असाइनमेंट में 2 चरण होते हैं, किसी वस्तु की पुरानी स्थिति को तोड़ना और उसके लिए एक नई स्थिति का निर्माण करना। विनाशक का उपयोग पहले चरण के लिए किया जाता है और प्रतिलिपि बनाने वाला दूसरा चरण करता है। इन दोनों को लागू करना सीधा है। लेकिन जब असाइनमेंट ऑपरेटर को ओवरलोड किया जाता है, तो इसे लागू करना काफी