¿Cómo encontrar elementos comunes entre dos vectores utilizando en STL C ++?

C ++ STL | la búsqueda de elementos comunes de los dos vectores : Aquí, vamos a aprender cómo encontrar los elementos comunes entre dos vectores usando el programa STL C ++?

Dados dos vectores y tenemos que encontrar sus elementos comunes.

encontrar elementos comunes entre dos vectores

Para encontrar elementos comunes entre dos vectores , podemos utilizar función set_intersection () , acepta los iteradores de ambos vectores que apuntan a los rangos de inicio y finalización y un iterador de resultar vector (en la que almacenamos el resultado) que apunta a la posición inicial y devuelve un señalador iterador hasta el final de la gama construido.

Nota: Para utilizar vector – class & lt; vector & gt; de cabeza, y para usar función set_intersection () – include & lt; algoritmo de & gt; encabezado o simplemente podemos utilizar . & Lt; bits / STDC ++ h & gt; archivo de cabecera.

Sintaxis:

    std::set_intersection(
iterator start1, iterator end1,
iterator start1, iterator end1,
iterator start3);

Aquí, iterador start1, iterador END1 – son los iteradores que apuntan a la puesta en marcha y la posición del primer vector que terminan, iterador start2, iterador end2 – son los iteradores que apuntan a la de partida y la posición de segundo vector que finaliza, y iterador START3 – está un iterador que señala a la posición de partida del vector de resultado.

programa

C ++ STL para encontrar los elementos comunes de dos vectores

//C++ STL program to find common elements
//between two Vectors
#include <bits/stdc++.h>
using namespace std;
int main()
{
//vectors
vector<int> v1 = { 10, 20, 5, 40, 2, 30 };
vector<int> v2 = { 100, 10, 20, 30, 200, 300 };
//sorting the vectors
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
// Print the vectors
cout << "v1: ";
for (int x : v1)
cout << x << " ";
cout << endl;
cout << "v2: ";
for (int x : v2)
cout << x << " ";
cout << endl;
//declaring result vector to
//store the common elements
vector<int> v3(v1.size() + v2.size());
//iterator to store return type
vector<int>::iterator it, end;
end = set_intersection(
v1.begin(), v1.end(),
v2.begin(), v2.end(),
v3.begin());
cout << "Common elements v3: ";
for (it = v3.begin(); it != end; it++)
cout << *it << " ";
cout << endl;
return 0;
}

salida

v1: 2 5 10 20 30 40
v2: 10 20 30 100 200 300
Common elements v3: 10 20 30


Deja un comentario

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