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

सी ++ एसटीएल में सूची मर्ज () फ़ंक्शन

इस लेख में हम C++ में काम करने, वाक्य रचना और सूची ::मर्ज () फ़ंक्शन के उदाहरणों पर चर्चा करेंगे।

STL में सूची क्या है?

सूची एक डेटा संरचना है जो अनुक्रम में कहीं भी निरंतर समय सम्मिलन और विलोपन की अनुमति देती है। सूचियों को डबल लिंक्ड सूचियों के रूप में लागू किया जाता है। सूचियाँ गैर-सन्निहित स्मृति आवंटन की अनुमति देती हैं। सूची सरणी, वेक्टर और डेक की तुलना में कंटेनर में किसी भी स्थिति में बेहतर सम्मिलन निष्कर्षण और तत्व को स्थानांतरित करती है। सूची में तत्व तक सीधी पहुंच धीमी है और सूची आगे_सूची के समान है, लेकिन अग्रेषित सूची वस्तुएं एकल लिंक की गई सूचियां हैं और उन्हें केवल आगे की ओर पुनरावृत्त किया जा सकता है।

सूची क्या है::मर्ज()?

list::merge() C++ STL में एक इनबिल्ट फंक्शन है जिसे हैडर फाइल में डिक्लेयर किया जाता है। मर्ज () का उपयोग दो सूचियों को एक में मिलाने के लिए किया जाता है। हम केवल दो सूचियों को मर्ज कर सकते हैं, या यदि हम अतिरिक्त तुलना चाहते हैं तो हम एक तुलनित्र भी जोड़ सकते हैं।

दो सूचियों को मर्ज करने से पहले हमें यह सुनिश्चित करना चाहिए कि सूचियाँ क्रमबद्ध क्रम में हैं। यदि कोई तुलनित्र पास नहीं है तो यह दो सूचियों को एक क्रमबद्ध सूची में मिला देता है। जब हम भी दो सूचियों के बीच आंतरिक तुलना चाहते हैं तो हमें तुलनित्र जोड़ना होगा।

सिंटैक्स

list_container1.merge(list_container2); //will merge both lists in list_container1
list_container1.merge(list_container2, comparator);

यह फ़ंक्शन एक या दो पैरामीटर स्वीकार कर सकता है -

पैरामीटर

  • list_container2 - यह दूसरी सूची का एक उद्देश्य है जिसे मर्ज किया जाना है

  • तुलनित्र - यह एक आंतरिक तुलना को परिभाषित करता है। यह एक द्विआधारी विधेय है जिसमें सूची कंटेनर में परिभाषित मूल्य के दो इनपुट होते हैं, यह सच हो जाता है यदि list_container1 तत्व को list_container2 से पहले जाना माना जाता है, अन्यथा यह गलत होगा।

रिटर्न वैल्यू

यह फ़ंक्शन कुछ भी नहीं देता है।

तुलनित्र के बिना

उदाहरण

नीचे दिए गए कोड में हम दो क्रमबद्ध सूचियां बना रहे हैं और कार्य सूचियों को मर्ज करना है और परिणामी आउटपुट भी सॉर्ट किया जाना चाहिए।

#include <bits/stdc++.h>
using namespace std;
int main(){
   //creating the sorted list
   list<int> myList_1 = {2, 4, 6, 8 };
   list<int> myList_2 = {1, 3, 5, 7 };
   //using merge() function to merge the lists
   myList_2.merge(myList_1);
   cout <<"Lists after merging : ";
   for(auto i = myList_2.begin(); i != myList_2.end(); ++i)
      cout << *i << " ";
   return 0;
}

उदाहरण

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Lists after merging : 1 2 3 4 5 6 7 8

तुलनित्र के साथ

उदाहरण

नीचे दिए गए कोड में हमें दो सूचियों को मर्ज करना है और फिर जेनरेट की गई सूची को अंतिम आउटपुट के रूप में सॉर्ट करना है।

#include <bits/stdc++.h>
using namespace std;
bool compare(int myList_1, int myList_2){
   return ( int(myList_1)<int(myList_2) );
}
int main(){
   //create a list
   list<int> myList_1 = {2, 4, 1 };
   list<int> myList_2 = {7, 6, 5 };
   myList_1.sort();
   myList_2.sort();
   //using merge() function to merge the lists
   myList_1.merge(myList_2);
   myList_2.push_back (3);
   myList_1.merge(myList_2,compare);
   cout<<"List Elements are : ";
   for(auto i = myList_1.begin(); i!=myList_1.end(); ++i)
      cout<< ' ' << *i;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

List Elements are : 1 2 3 4 5 6 7

  1. सी ++ एसटीएल में रिवर्स फ़ंक्शन सूचीबद्ध करें

    इस लेख में हम C++ में काम करने, वाक्य रचना और सूची ::रिवर्स () फ़ंक्शन के उदाहरणों पर चर्चा करेंगे। STL में सूची क्या है सूची एक डेटा संरचना है जो अनुक्रम में कहीं भी निरंतर समय सम्मिलन और विलोपन की अनुमति देती है। सूचियों को डबल लिंक्ड सूचियों के रूप में लागू किया जाता है। सूचियाँ गैर-सन्निहित स्म

  1. सी ++ एसटीएल में सूची असाइन करें () फ़ंक्शन

    C++ में असाइनमेंट () फ़ंक्शन के कार्य को दिखाने का कार्य दिया गया है। सूची ::असाइन () फ़ंक्शन सी ++ मानक टेम्पलेट लाइब्रेरी का एक हिस्सा है। इसका उपयोग किसी सूची में मान निर्दिष्ट करने और एक सूची से दूसरी सूची में मानों की प्रतिलिपि बनाने के लिए भी किया जाता है। इस फ़ंक्शन को कॉल करने के लिए हेडर

  1. सी ++ एसटीएल में सूची वापस () फ़ंक्शन

    c++ में लिस्ट बैक () फंक्शन की कार्यप्रणाली को दिखाने का कार्य दिया गया है। सूची ::बैक () फ़ंक्शन सी ++ मानक टेम्पलेट लाइब्रेरी का एक हिस्सा है। इसका उपयोग किसी भी सूची के अंतिम तत्व को प्रदर्शित करने के लिए किया जाता है। इस फ़ंक्शन को कॉल करने से पहले हेडर फ़ाइल शामिल की जानी चाहिए। सिंटैक्स Lis