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 Cuando llegues al final del vector lo reinicias para que vuelva a comparar, y le sumas + 1 al indice del otro vector. Repites esto hasta que se compruebe el útlimo elemento del último vector.
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.