Título: Intersección de dos vectores Publicado por: tokyo13 en 29 Junio 2019, 16:53 pm Estoy aprendiendo c++ y no consigo hacer la intersección de dos vectores que ya tengo. Alguien me puede echar una mano?
Ty Código: void interseccionNoOrdenado(int vector1[], int medida1, int vector2[], int medida2, int vectorResult[], int& medidaResult) Título: Re: Intersección de dos vectores Publicado por: @XSStringManolo en 29 Junio 2019, 19:28 pm Para que vas a usar el programa?
Hay otros formas de recorrer un vector y buscar elementos en él. int i = 0; for (auto iter = MiVector.begin(); iter != MiVector.end(); ++iter) { i++ if (*iter == 2) { cout << "Encontrado el numero 2 en la posición [" <<i-1 << "] del vector." <<endl; } } for (auto& numero : MiVector) { if (numero == 2) { cout.... numero; } } for (MiVector::iterator encontrado = find(miVector.begin(), miVector.end(), 2) if (encontrado != miVector.end()) { cout... *encontrado; } No teniendo para que tanta complicación de código. Recorres uno de los vectores y compruebas si los elementos estan el otro. int i = 0; for (iter vector1; iter != 10000; ++iter) { if (*iter == vector2) { //encontrado elemento comun } if (iter == vector1.end()) { iter = vector1.begin(); } if (i==vector2.size()) { iter = 10.000 } else { i++ } } Es un ejemplo pseudocodigo que me acabo de inventar. Recorres un vector como quieras. Compruebas si todos sus elementos coinciden con los del indice
El ejemplo es meramente ilustrativo para que te hagas una idea de como hacerlo y lo puedas hacer tú. Si necesitas saber que elementos coinciden, puedes poner un append a un tercer vector o cuaquier contenedor de la STL que se adecue mejor al tipo de datos a almacenar. Con un vector harías: if (*iter == vector2) { vectorelementos.append(*iter); vectorposicion.append(i); v } Despues con un for imprimes todos loa valores. Título: Re: Intersección de dos vectores Publicado por: CalgaryCorpus en 30 Junio 2019, 07:17 am Toma los elementos del primer vector y construye un set.
Toma los elementos del Segundo vector y por cada uno de ellos preguntale al set si lo contiene. Si es asi, es parte de la interseccion, sino lo ignoras. |