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

पहले सरणी में मौजूद तत्वों की गणना करें लेकिन सी ++ में दूसरे में नहीं

हमें पूर्णांक तत्वों वाले किसी भी आकार की एक सरणी दी गई है और कार्य उन तत्वों की गिनती की गणना करना है जो पहले सरणी में मौजूद हैं लेकिन दूसरे सरणी में नहीं हैं..

एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रहीत करने के लिए एक सरणी का उपयोग किया जाता है, लेकिन एक सरणी को उसी प्रकार के चर के संग्रह के रूप में सोचना अक्सर अधिक उपयोगी होता है।

उदाहरण के लिए

Input− int arr_1[] = {1, 2, 3, 4}
      Int arr_2[] = {1, 5, 6, 7, 8}
Output − count is 3

स्पष्टीकरण − दिए गए arr_1 में हमारे पास 1, 2, 3 और 4 अवयव हैं और arr_2 में हमारे पास 1, 5, 6,7 और 8 हैं। अवयव 1 दोनों सरणियों में मौजूद है, इसलिए हम इसकी गणना नहीं करेंगे और इसलिए गिनती 3 हो जाती है।

Input − int arr_1[] = {10, 20, 30, 40, 50}
      Int arr_2[] = {10, 20, 30, 60}
Output − count is 2

स्पष्टीकरण − दिए गए arr_1 में हमारे पास 10, 20, 30, 40 और 50 तत्व हैं और arr_2 में हमारे पास 10, 20, 30 और 60 हैं। तत्व 10, 20 और 30 दोनों सरणियों में मौजूद हैं, इसलिए हम गिनती नहीं करेंगे उन्हें और इसलिए गिनती 2 हो जाती है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • दो सरणियाँ बनाएँ मान लें, arr_1[] और arr_2[]

  • लंबाई () फ़ंक्शन का उपयोग करके दोनों सरणियों की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।

  • एक अस्थायी चर लें जो केवल पहली सरणी में मौजूद तत्वों की संख्या को संग्रहीत करेगा।

  • एक अनियंत्रित नक्शा बनाएं आइए बताते हैं

  • i से 0 तक के लिए लूप प्रारंभ करें जब तक कि arr_1 का आकार कम न हो जाए

  • 1

    . के साथ बढ़ाएँ[arr_1[i]]
  • i से 0 तक के लिए एक और लूप प्रारंभ करें जब तक कि arr_2 का आकार कम न हो जाए

  • लूप के अंदर, जांचें कि क्या up.find(arr_2[i])!=up.end() और up[arr_2[i]]!=0

  • 1 से ऊपर [arr_2[i]] घटाएं

  • i से 0 तक के लिए दूसरा लूप प्रारंभ करें जब तक कि arr_1 के आकार से कम न हो जाए

  • लूप के अंदर, जांचें कि क्या up[arr_1[i]!=0

  • फिर, गिनती को 1 से बढ़ाएँ और सेट करें[arr_1[i]] =0

  • गिनती लौटाएं

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
#include<unordered_map>
using namespace std;
int elements_count(int arr_1[], int arr_2[], int m, int n){
   bool f = false;
   int result = 0;
   // map to store frequency of elements present in a
   unordered_map<int, int> up;
   for (int i = 0; i < m; i++){
      up[arr_1[i]]++;
   }
   // check if the elements of b
   // is present in b or not
   for (int i = 0; i < n; i++)
   if (up.find(arr_2[i]) != up.end() && up[arr_2[i]] != 0){
      up[arr_2[i]]--;
   }
   // count the elements of a whose
   // frequency is more than b
   for (int i = 0; i < m; i++) {
      if (up[arr_1[i]] != 0){
         result++;
         up[arr_1[i]] = 0;
      }
   }
   return result;
}
// Main function
int main(){
   int arr_1[] = { 2, 4, 4, 6, 6, 6, 8, 9 };
   int arr_2[] = { 2, 2, 4, 6, 6 };
   int m = sizeof(arr_1)/sizeof(arr_1[0]);
   int n = sizeof(arr_2)/sizeof(arr_2[0]);
   cout <<"count is "<<elements_count(arr_1, arr_2, m, n);
   return 0;
}

आउटपुट

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

count is 4

  1. C++ में किसी सरणी में पहला, दूसरा और तीसरा न्यूनतम तत्व खोजें

    मान लीजिए कि हमारे पास n तत्वों की एक सरणी है। हमें सरणी में पहले, दूसरे और तीसरे न्यूनतम तत्वों को खोजना होगा। पहला न्यूनतम न्यूनतम है, दूसरा न्यूनतम न्यूनतम है लेकिन पहले वाले से बड़ा है, और इसी तरह तीसरा मिनट न्यूनतम है लेकिन दूसरे मिनट से बड़ा है। प्रत्येक तत्व के माध्यम से स्कैन करें, फिर तत्व

  1. उन तत्वों को खोजें जो पहली सरणी में मौजूद हैं और दूसरे में C++ में नहीं हैं

    मान लीजिए कि हमारे पास दो एरे ए और बी हैं। कुछ तत्व हैं। हमें उन तत्वों को खोजना है जो समुच्चय ए में मौजूद हैं, लेकिन सेट बी में नहीं हैं। अगर हम उस स्थिति को सोचते हैं, और ए और बी को सेट मानते हैं, तो यह मूल रूप से सेट डिवीजन ऑपरेशन है। ए और बी के बीच सेट अंतर उन तत्वों को वापस कर देगा। उदाहरण #inc

  1. सी++ प्रोग्राम एक ऐरे में व्युत्क्रम की गणना करने के लिए

    काउंट इनवर्जन का अर्थ है किसी सरणी को सॉर्ट करने के लिए आवश्यक स्विच की संख्या। उलटा गिनती =0, जब सरणी को क्रमबद्ध किया जाता है। उलटा गिनती =अधिकतम, जब सरणी को उल्टे क्रम में क्रमबद्ध किया जाता है। आइए एक सरणी में उलटा गिनने के लिए एक C++ प्रोग्राम विकसित करें। एल्गोरिदम Begin    Function