इस लेख में हम C++ STL में काम करने, वाक्य रचना और सूची ::ब्याह () फ़ंक्शन के उदाहरणों पर चर्चा करेंगे।
STL में सूची क्या है?
सूची एक डेटा संरचना है जो अनुक्रम में कहीं भी निरंतर समय सम्मिलन और विलोपन की अनुमति देती है। सूचियों को डबल लिंक्ड सूचियों के रूप में लागू किया जाता है। सूचियाँ गैर-सन्निहित स्मृति आवंटन की अनुमति देती हैं। सूची सरणी, वेक्टर और डेक की तुलना में कंटेनर में किसी भी स्थिति में बेहतर सम्मिलन निष्कर्षण और तत्व को स्थानांतरित करती है। सूची में तत्व तक सीधी पहुंच धीमी है और सूची आगे_सूची के समान है, लेकिन अग्रेषित सूची वस्तुएं एकल लिंक की गई सूचियां हैं और उन्हें केवल आगे की ओर पुनरावृत्त किया जा सकता है।
सूची क्या है::splice()?
list::splice() C++ STL में एक इनबिल्ट फंक्शन है जिसे हैडर फाइल में डिक्लेयर किया जाता है। स्प्लिस () का उपयोग तत्वों को एक सूची कंटेनर से दूसरे सूची कंटेनर में एक निश्चित स्थिति में स्थानांतरित करने के लिए किया जाता है। यह फ़ंक्शन सामग्री को एक सूची में सम्मिलित करता है और दोनों सूचियों के आकार को संशोधित करते हुए उन सामग्री को दूसरी सूची से हटा देता है।
सिंटैक्स
This function’s syntax can be defined as 3 ways: list1.splice(position, list2); list1.splice(position, list2, i); list1.splice(position, list2, first, last);
पैरामीटर
-
स्थिति - सूची की स्थिति जहां हम तत्वों को स्थानांतरित करना चाहते हैं।
-
सूची2 - वह सूची जहां से हम तत्वों को स्थानांतरित करना चाहते हैं।
-
i:यह एक पुनरावर्तक है जो सूची 2 की स्थिति को निर्दिष्ट करता है जहां से हम सूची 2 के अंत तक तत्व को स्थानांतरित करना चाहते हैं।
-
पहला, आखिरी - ये दोनों इटरेटर हैं जो सूची 2 की शुरुआती और समाप्ति स्थिति को परिभाषित करते हैं जिससे हम तत्वों को स्थानांतरित करना चाहते हैं।
उदाहरण
Input: list<int> List_container= { 10, 11, 13, 15}; list<int> List2 = {1, 2, 3, 4}; List_container.splice(2, List2); Output: List_container= 10 11 13 15 3 4 List2 = 1 2
रिटर्न वैल्यू
यह फ़ंक्शन सूची के अंतिम तत्व की ओर इशारा करते हुए एक रिवर्स इटरेटर देता है। रिवर्स इटरेटर एक इटरेटर है जो पीछे की दिशा में चलता है।
#include <bits/stdc++.h> using namespace std; int main(){ list<int> myList_1 = { 10, 20, 30, 40 }; list<int> myList_2 = { 50, 60 }; list<int>::iterator i; i = myList_2.begin(); myList_1.splice(myList_1.end(), myList_2, i); cout<<"list after splice operation" << endl; for (auto temp : myList_1) cout << temp << " "; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
list after splice operation 10 20 30 40 50
उदाहरण
#include <bits/stdc++.h> using namespace std; int main(){ list<int> myList_1 = { 10, 20}; list<int> myList_2 = { 30, 40, 50}; list<int> myList_3 = {60}; myList_1.splice(myList_1.begin(), myList_2); cout << "list 1 after splice operation" << endl; for (auto x : myList_1) cout << x << " "; myList_3.splice(myList_3.end(), myList_1); cout << "\nlist 3 after splice operation" << endl; for (auto x : myList_3) cout << x << " "; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
list 1 after splice operation 30 40 50 10 20 list 1 after splice operation 60 30 40 50 10 20