C++ में assign() फ़ंक्शन के कार्य को दिखाने का कार्य दिया गया है।
list::assign() फ़ंक्शन C++ मानक टेम्पलेट लाइब्रेरी का हिस्सा है। इसका उपयोग लिस्ट को मान असाइन करने और एक लिस्ट से दूसरी लिस्ट में मान कॉपी करने के लिए किया जाता है।
<list> हेडर फ़ाइल को इस फ़ंक्शन को कॉल करने के लिए शामिल किया जाना चाहिए।
सिंटैक्स
नए मान असाइन करने के लिए सिंटैक्स इस प्रकार है −
List_Name.assign(size,value)
सिंटैक्स
एक लिस्ट से दूसरी लिस्ट में मान कॉपी करने के लिए सिंटैक्स इस प्रकार है −
First_List.assign(Second_List.begin(),Second_list.end())
पैरामीटर्स
फ़ंक्शन दो पैरामीटर्स लेता है −
पहला है साइज़, जो लिस्ट के आकार को दर्शाता है और दूसरा है वैल्यू, जो लिस्ट के अंदर स्टोर किए जाने वाले डेटा मान को दर्शाता है।
रिटर्न वैल्यू
फ़ंक्शन का कोई रिटर्न मान नहीं है।
उदाहरण
Input: Lt.assign(3,10) Output: The size of list Lt is 3. The elements of the list Lt are 10 10 10.
व्याख्या −
निम्न उदाहरण दर्शाता है कि हम assign() फ़ंक्शन का उपयोग करके लिस्ट को उसका आकार और मान कैसे असाइन कर सकते हैं। पहला मान जो हम लिस्ट फ़ंक्शन के अंदर पास करेंगे वह लिस्ट का आकार बन जाता है, इस मामले में यह 3 है और दूसरा एलिमेंट वह मान है जिसे लिस्ट के प्रत्येक पोजीशन पर असाइन किया जाता है और यहां यह 10 है।
उदाहरण
Input: int array[5] = { 1, 2, 3, 4 } Lt.assign(array,array+3) Output: The size of list Lt is 3. The elements of the list Lt are 1 2 3.व्याख्या −
निम्न उदाहरण दर्शाता है कि हम एरे का उपयोग करके लिस्ट को मान कैसे असाइन कर सकते हैं। लिस्ट को असाइन किए गए तत्वों की कुल संख्या लिस्ट का आकार बन जाती है।
उपयोगकर्ता को बस एरे का नाम assign() फ़ंक्शन के अंदर पहले आर्गुमेंट के रूप में पास करना होगा, और दूसरा आर्गुमेंट एरे का नाम होना चाहिए, फिर "+" चिह्न उसके बाद उन तत्वों की संख्या जो उपयोगकर्ता लिस्ट को असाइन करना चाहता है।
उपरोक्त मामले में हमने 3 लिखा है, इसलिए एरे के पहले तीन तत्व लिस्ट को असाइन किए जाएंगे।
यदि हम एरे में मौजूद तत्वों की संख्या से बड़ी संख्या लिखते हैं, मान लें 6, तो प्रोग्राम कोई त्रुटि नहीं दिखाएगा बल्कि लिस्ट का आकार 6 हो जाएगा और लिस्ट में अतिरिक्त पोजीशन को मान शून्य से असाइन किया जाएगा।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है −
- पहले ShowList(list<int> L) फ़ंक्शन बनाएं जो लिस्ट के तत्वों को प्रदर्शित करेगा।
- एक इटरेटर बनाएं, मान लें itr जिसमें प्रदर्शित की जाने वाली लिस्ट का प्रारंभिक तत्व होगा।
- लूप को तब तक चलाएं जब तक itr लिस्ट के अंतिम तत्व तक नहीं पहुंच जाता।
- फिर main() फ़ंक्शन के अंदर list<int> का उपयोग करके तीन लिस्ट बनाएं, मान लें L1, L2 और L3 ताकि वे टाइप int के मान स्वीकार करें और फिर टाइप int का एक एरे बनाएं, मान लें arr[] और इसे कुछ मान असाइन करें।
- फिर assign() फ़ंक्शन का उपयोग करके लिस्ट L1 को आकार और कुछ मान असाइन करें और फिर लिस्ट L1 को ShowDisplay() फ़ंक्शन में पास करें।
- फिर assign() फ़ंक्शन का उपयोग करके लिस्ट L1 के तत्वों को L2 में कॉपी करें और L2 को ShowList() फ़ंक्शन में भी पास करें।
- फिर assign() फ़ंक्शन का उपयोग करके एरे arr[] के तत्वों को लिस्ट L3 में कॉपी करें और लिस्ट L3 को DisplayList() फ़ंक्शन में पास करें।
एल्गोरिदम
Start Step 1-> Declare function DisplayList(list<int> L) for showing list elements Declare iterator itr Loop For itr=L.begin() and itr!=L.end() and itr++ Print *itr End Step 2-> In function main() Declare lists L1,L2,L3 Initialize array arr[] Call L1.assign(size,value) Print L1.size(); Call function DisplayList(L1) to display L1 Call L2.assign(L1.begin(),L1.end()) Print L2.size(); Call function DisplayList(L2) to display L2 Call L3.assign(arr,arr+4) Print L3.size(); Call function DisplayList(L3) to display L3 Stop
उदाहरण
#include<iostream> #include<list> using namespace std; int ShowList(list<int> L) { cout<<"The elements of the list are "; list<int>::iterator itr; for(itr=L.begin(); itr!=L.end(); itr++) { cout<<*itr<<" "; } cout<<"\n"; } int main() { list<int> L1; list<int> L2; list<int> L3; int arr[10] = { 6, 7, 2, 4 }; //assigning size and values to list L1 L1.assign(3,20); cout<<"The size of list L1 is "<<L1.size()<<"\n"; ShowList(L1); //copying the elements of L1 into L3 L2.assign(L1.begin(),L1.end()); cout<<"The size of list is L2 "<<L2.size()<<"\n"; ShowList(L2); //copying the elements of arr[] into list L3 L3.assign(arr,arr+4); cout<<"The size of list is L3 "<<L3.size()<<"\n"; ShowList(L3); return 0; }आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा −
The size of list L1 is 3 The elements of the list are 20 20 20 The size of list L2 is 3 The elements of the list are 20 20 20 The size of list L3 is 4 The elements of the list are 6 7 2 4
व्याख्या
लिस्ट L1 के लिए हमने assign() फ़ंक्शन में आकार 3 और मान 20 दिया था जिससे उपरोक्त आउटपुट उत्पन्न हुआ।
फिर हमने लिस्ट L1 के तत्वों को L2 में कॉपी किया जिससे L2 को L1 के समान आकार और मान मिला जैसा कि हम आउटपुट में देख सकते हैं।
फिर हमने assign फ़ंक्शन का उपयोग करके एरे arr[] के सभी तत्वों को कॉपी किया जिससे L3 का आकार 4 हो गया और इसके तत्व एरे के तत्वों के समान हो गए जैसा कि आउटपुट में है।