इस लेख में हम C++ में फॉरवर्ड_लिस्ट ::मर्ज () फंक्शन की कार्यप्रणाली, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
STL में Forward_list क्या है?
फॉरवर्ड लिस्ट अनुक्रम कंटेनर हैं जो अनुक्रम के भीतर कहीं भी निरंतर समय डालने और संचालन को मिटाने की अनुमति देते हैं। फॉरवर्ड लिस्ट को सिंगल-लिंक्ड लिस्ट के रूप में लागू किया जाता है। क्रम में अगले तत्व के लिंक के प्रत्येक तत्व के लिए एसोसिएशन द्वारा आदेश रखा जाता है।
forward_list::merge() क्या है?
फॉरवर्ड_लिस्ट ::मर्ज () सी ++ एसटीएल में एक इनबिल्ट फ़ंक्शन है जिसे हेडर फ़ाइल में घोषित किया गया है। मर्ज () का उपयोग दो सॉर्ट किए गए फॉरवर्ड_लिस्ट को एक में मर्ज करने के लिए किया जाता है।
दो सूचियों को मर्ज करने से पहले हमें यह सुनिश्चित करना चाहिए कि सूचियाँ क्रमबद्ध क्रम में हैं। यदि कोई तुलनित्र पास नहीं है तो यह दो सूचियों को एक क्रमबद्ध सूची में मिला देता है। जब हम भी दो सूचियों के बीच आंतरिक तुलना चाहते हैं तो हमें तुलनित्र जोड़ना होगा।
सिंटैक्स
flist_container1.merge(flist_container2); //will merge both lists flist_container1.merge(flist_container2, comparator);
यह फ़ंक्शन एक या दो पैरामीटर स्वीकार कर सकता है -
पैरामीटर
-
list_container2 - यह दूसरी सूची का एक उद्देश्य है जिसे मर्ज किया जाना है
-
तुलनित्र - यह एक आंतरिक तुलना को परिभाषित करता है। यह एक द्विआधारी विधेय है जिसमें सूची कंटेनर में परिभाषित मूल्य के दो इनपुट होते हैं, यह सच हो जाता है यदि list_container1 तत्व को list_container2 से पहले जाना माना जाता है, अन्यथा यह गलत होगा।
रिटर्न वैल्यू
यह फ़ंक्शन कुछ भी नहीं देता है।
उदाहरण
/*नीचे दिए गए कोड में, हम दो आगे की सूचियां बना रहे हैं और दोनों को क्रमबद्ध किया गया है और कार्य C++ में मर्ज () फ़ंक्शन का उपयोग करके उन्हें मर्ज करना है जिसे सॉर्ट किया जाना चाहिए*/
#include <bits/stdc++.h> using namespace std; int main() { //creating forward list by inserting sorted values forward_list<int> myForwardList1 = { 1, 3, 5, 7 }; forward_list<int> myForwardList2 = { 2, 4, 6 }; // merging two sorted forward lists myForwardList1.merge(myForwardList2); cout << "elements after merging" << endl; for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i) cout << *i << " "; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
elements after merging 1 2 3 4 5 6 7
तुलनित्र के साथ
उदाहरण
/*नीचे दिए गए कोड में, हम दो अग्रेषित सूचियां बना रहे हैं और दोनों क्रमबद्ध नहीं हैं और कार्य सूची को पहले सॉर्ट करना है और फिर सी ++ में मर्ज () फ़ंक्शन का उपयोग करके उन्हें मर्ज करना है और इसे सॉर्ट किया जाना चाहिए। */
#include <bits/stdc++.h> using namespace std; int main (){ //create unsorted forward list forward_list<int> myForwardList1 = {3, 2, 9}; forward_list<int> myForwardList2 = {8, 1, 2}; //sorting the forward list using sort() function myForwardList1.sort(); myForwardList2.sort(); myForwardList1.merge(myForwardList2); cout << "Elements after merging" << endl; for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i) cout << *i << " "; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Elements after merging 1 2 2 3 8 9