Elementos presentes en la primera array y no en la segunda usando STL en C++

Dadas dos arrays, la tarea es encontrar números que están presentes en la primera array, pero no presentes en la segunda array, usando STL en C++ Ejemplos:

Input: a[] = {1, 2, 3, 4, 5, 10}, b[] = {2, 3, 1, 0, 5}
Output: 4 10

Input:a[] = {4, 3, 5, 9, 11}, b[] = {4, 9, 3, 11, 10};
Output: 5

Enfoque: en STL, el método set_difference() se puede usar para encontrar el ‘A-B’ donde A es la primera array y B es la segunda array. Sintaxis:

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

A continuación se muestra la implementación del enfoque anterior: 

CPP

// C++ simple program to
// find elements which are
// not present in second array
 
#include <bits/stdc++.h>
using namespace std;
 
// Function for finding
// elements which are there
// in a[] but not in b[].
void findMissing(int a[], int b[],
    int n, int m)
{
 
 // Declare a vector to store the result
 vector<int> v(n + m);
 
 // And an iterator to traverse the vector
 vector<int>::iterator it;
 
 // Sort the given arrays
 sort(a, a + n);
 sort(b, b + m);
 
 // Find the elements in a[]
 // which are not in b[]
 it = set_difference(a, a + n, b, b + m, v.begin());
 
 // Now resize the vector to the existing count
 v.resize(it - v.begin());
 
 // Print the results
 cout << "The elements in a[]"
  << " which are not in b[]:\n";
 for (it = v.begin(); it != v.end(); ++it)
  cout << *it << " ";
 cout << endl;
}
 
// Driver code
int main()
{
 int a[] = { 1, 2, 6, 3, 4, 5 };
 int b[] = { 2, 4, 3, 1, 0 };
 int n = sizeof(a) / sizeof(a[0]);
 int m = sizeof(b) / sizeof(b[1]);
 findMissing(a, b, n, m);
 return 0;
}
Producción:

The elements in a[] which are not in b[]:
5  6

Complejidad de tiempo: O(nlogn + mlogm), usado para ordenar las arrays dadas
Espacio auxiliar: O(n+m), espacio extra de tamaño (n+m) usado para crear vectores

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *