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

C++ में STL का उपयोग करके पहले एरे में मौजूद और दूसरे में नहीं मौजूद तत्व


हमारे पास दो एरे हैं, कार्य दोनों एरे की तुलना करना और पहले एरे में मौजूद लेकिन दूसरे एरे में मौजूद नहीं होने वाली संख्याओं को ढूंढना है, C++ में स्टैंडर्ड टेम्पलेट लाइब्रेरी (STL) का उपयोग करके।

उदाहरण

Input: array1[ ] = {1,2,3,4,5,7} array2[ ] = {2,3,4,5,6,8} Output: 1, 7 Input: array1[ ] = {1,20,33,45,67} array2[ ] = {1,12,13,114,15,13} Output: 20,33,45,67

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है −

  • इस प्रोग्राम में हम उन तत्वों को ढूंढना चाहते हैं जो पहले एरे में मौजूद हैं लेकिन दूसरे एरे में मौजूद नहीं हैं।
  • ऐसा करने के लिए हम पहले दो वेरिएबल इनिशियलाइज़ करते हैं। अब हम "find" नामक एक फ़ंक्शन बनाएंगे जो उन तत्वों को ढूंढेगा जो एरे 1 में हैं और एरे 2 में नहीं।
  • फ़ंक्शन में हम एक वेक्टर घोषित करेंगे (वेक्टर्स डायनामिक एरे के समान होते हैं जिनमें तत्व डालने या हटाने पर खुद को स्वचालित रूप से रिसाइज़ करने की क्षमता होती है) परिणाम स्टोर करने के लिए और हम वेक्टर को पार करने के लिए एक इटरेटर भी घोषित करेंगे।
  • अब हम एरे को सॉर्ट करेंगे और set_difference() मेथड का उपयोग करके लापता तत्व ढूंढेंगे, और वेक्टर को परिणाम के अनुसार रिसाइज़ करेंगे और मान स्टोर करेंगे और फिर समाधान प्रिंट करेंगे।

स्टैंडर्ड टेम्पलेट लाइब्रेरी (STL) में, हम "array1-array2" ढूंढने के लिए set_difference() मेथड का उपयोग कर सकते हैं। दो सेटों का अंतर उन तत्वों द्वारा बनता है जो पहले सेट में मौजूद हैं, लेकिन दूसरे में नहीं। फ़ंक्शन द्वारा कॉपी किए गए तत्व हमेशा पहली रेंज से आते हैं, उसी क्रम में। दोनों रेंज में तत्व पहले से ही क्रमबद्ध होने चाहिए।

सिंटैक्स

set_difference() के लिए सिंटैक्स है −

OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result);

एल्गोरिदम

Start Step 1-> Create function for finding missing elements    void find(int array1[], int array2[], int x, int y)    Declare a vector which stores the result as vector<int> v(x + y)    Declare an iterator traverse the vector as    vector<int>::iterator it    Sort the arrays    sort array1 and sort array2 End    Find the missing elements    diff = set_difference(array1, array1 + x, array2, array2 + y, v.begin())    resize the vector to the existing count    v.resize(diff - v.begin())    print the elements present in array1[] and not in array2[]    for (diff = v.begin()       diff != v.end()       ++diff       Print *diff    End Step 2-> In main()    Declare array as int array1and int array2    Declare variable x and y to calculate the size of array1 and array 2 as    int x = size of array1 and int y = size of array2 Call the function as find(array1, array2, x, y)

उदाहरण

#include <bits/stdc++.h> using namespace std; int main() {    int array1[] = { 1, 2, 3, 4, 5, 7 };    int array2[] = { 2, 3, 4, 5, 6, 8 };    int x = sizeof(array1) / sizeof(array1[0]);    int y = sizeof(array2) / sizeof(array2[1]);    find(array1, array2, x, y);    return 0; } // Creating function named “find” for finding missing elements void find(int array1[], int array2[], int x, int y) {    // Declaring a vector which stores the result    vector<int> v(x + y);    // Declaring an iterator traverse the vector    vector<int>::iterator it;    // Sorting the arrays    sort(array1, array1 + x);    sort(array2, array2 + y);    // Finding the missing elements    diff = set_difference(array1, array1 + x, array2, array2 + y, v.begin());    //resizing the vector to the existing count    v.resize(diff - v.begin());    cout << "The elements present in array1[] and not in array2[]:”;    for (diff = v.begin(); diff != v.end(); ++diff)    cout << *diff << " ";    cout << endl; }

आउटपुट

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

The elements present in array1[] and not in array2[]: 1,7

  1. - C++ में सरणी के न्यूनतम और अधिकतम तत्वों को पुनरावर्ती रूप से खोजें

    हमें एक पूर्णांक सरणी Arr[] इनपुट के रूप में दी गई है। लक्ष्य है पुनरावर्ती विधियों का उपयोग करके सरणी के बीच अधिकतम और न्यूनतम तत्वों को ढूंढना। चूंकि हम पुनरावर्तन का उपयोग कर रहे हैं, हम पूरी सरणी को तब तक ट्रैवर्स करेंगे जब तक हम लंबाई=1 तक नहीं पहुंच जाते, फिर A[0] लौटाते हैं जो आधार मामला बनात

  1. - C++ में सरणी में सबसे छोटे और दूसरे सबसे छोटे तत्वों के अधिकतम योग

    एक सरणी दी गई है, हर संभावित उपसरणी में सबसे छोटे और दूसरे सबसे छोटे तत्वों के योग का अधिकतम मान खोजें। महत्वपूर्ण अवलोकन: किसी भी उपसरणी में सबसे छोटे और दूसरे सबसे छोटे तत्व सरणी के दो आसन्न तत्व ही होंगे। इसलिए केवल आसन्न जोड़ों की जांच पर्याप्त है। उदाहरण: {4, 3, 1, 5, 6} → अधिकतम योग 11 (5+6)।

  1. C++ में STL का उपयोग करके जांचें कि क्या सरणी पैलिंड्रोम है या नहीं C++ में STL का उपयोग करके जांचें कि क्या सरणी पैलिंड्रोम है या नहीं

    n पूर्णांकों की एक सरणी arr[n] दी गई है, कार्य यह जांचना है कि क्या सरणी एक पैलिंड्रोम है या नहीं। हमें C++ में STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) का उपयोग करके यह कार्य करना है। C++ में STL (Standard Template Library) की एक विशेषता है, यह C++ टेम्पलेट कक्षाओं का एक समूह है जिसका उपयोग डेटा संरचना