दिया गया कार्य C++ STL में list::operator= फ़ंक्शन की कार्यक्षमता दिखाना है।
STL में List क्या है?
List ऐसे कंटेनर हैं जो अनुक्रम में कहीं भी स्थिर समय में सम्मिलन और विलोपन की अनुमति देते हैं। List को डबल लिंक्ड लिस्ट के रूप में लागू किया जाता है। List गैर-सन्निहित मेमोरी आवंटन की अनुमति देते हैं। किसी भी स्थिति में तत्वों के सम्मिलन, निष्कर्षण और स्थानांतरण के मामले में List, array, vector और deque से बेहतर प्रदर्शन करता है। List में तत्वों तक सीधी पहुंच धीमी होती है और यह forward_list के समान होता है, लेकिन forward list ऑब्जेक्ट्स सिंगल लिंक्ड लिस्ट होते हैं और उन्हें केवल आगे की ओर पुनरावृत्त किया जा सकता है।
operator = का उपयोग क्या है?
इस ऑपरेटर का उपयोग सूची में मौजूदा तत्वों को बदलकर नए तत्वों को निर्दिष्ट करने के लिए किया जाता है। और यह नई सूची के आकार को सामग्री के अनुसार संशोधित करता है। दूसरा कंटेनर जिससे हम नए तत्व ले रहे हैं उसका डेटा प्रकार पहले कंटेनर के समान होता है।
सिंटैक्स: listname1 = listname2
उदाहरण
Input List1: 50 60 80 90 List2: 90 80 70 60 Output List1: 90 80 70 60 Input List1: E N E R G Y List2: C A P T I O N Output List1: C A P T I O N
अनुसरण किया जा सकने वाला दृष्टिकोण
पहले हम दो सूचियों को प्रारंभ करते हैं।
फिर हम = ऑपरेटर का उपयोग करते हैं।
फिर हम नई सूची प्रिंट करते हैं।
उपरोक्त दृष्टिकोण का उपयोग करके हम सूची में नए तत्व निर्दिष्ट कर सकते हैं। इस ऑपरेटर का कार्य swap() फ़ंक्शन के समान है, यह ऑपरेटर list2 की सामग्री को list1 के साथ स्वैप करता है, लेकिन यह list1 की सामग्री को list2 के साथ स्वैप नहीं करता और list1 को नई सामग्री निर्दिष्ट करता है।
उदाहरण
// C++ कोड जो STL में list = ऑपरेटर के कार्य को प्रदर्शित करता है
#include <iostream>
#include <list>
using namespace std;
int main() {
// दो सूचियों को प्रारंभ करना
list<int> list1 = { 10, 20, 30, 40, 50 };
cout << " List1: ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
list<int> list2 = { 40, 50, 60, 70, 80 };
cout << " List2: ";
for(auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
list1 = list2;
// सूची की नई सामग्री प्रिंट करना
cout << " New contents of List1 is :";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - New content of List1 is: 40 50 60 70 80
उदाहरण
// C++ कोड जो STL में list = ऑपरेटर के कार्य को प्रदर्शित करता है
#include <iostream>
#include <list>
using namespace std;
int main() {
// दो सूचियों को प्रारंभ करना
list<char> list1 = { 'C', 'H', 'A', 'R', 'G', 'E', 'R' };
cout << " List1: ";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
list<char> list2 = { 'P', 'O', 'I', 'N', 'T' };
cout << " List2: ";
for(auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
list1 = list2;
// सूची की नई सामग्री प्रिंट करना
cout << " New contents of List1 is :";
for(auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
Input - List1: C H A R G E R List2: P O I N T Output - New contents of List1 is: P O I N T