No se si es esto lo que quieres, miratelo y dime.
Está claro que hay muchas maneras más eficientes de hacerlo, pero he querido tener 4 vectores. El a, el b, el conc (concatenación) y el uni (unión).
#include "iostream"
using namespace std;
int main ()
{
int a[4];
int b[4];
int conc[8];
int cont = 0;
bool rep[8];
for(int i = 0; i < 4; ++i){
cout << "Introduce a["<<i<<"]: ";
cin >> a[i];
conc[i] = a[i];
rep[i]=false;
}
for(int i = 0; i < 4; ++i){
cout << "Introduce b["<<i<<"]: ";
cin >> b[i];
conc[i+4] = b[i];
rep[i+4]=false;
}
for(int i = 0; i < 8; ++i){
for(int j = 0; j < 8; ++j){
if(i != j && conc[i] == conc[j] && !rep[j] && !rep[i]){
rep[j] = true;
++cont;
}
}
}
int uni[8-cont];
int j = 0;
int i = 0;
while(j < 8-cont){
if(!rep[i]){
uni[j] = conc[i];
++j;
}
++i;
}
cout << "Union de a y b:" << endl;
for(int i = 0; i < 8-cont; ++i){
cout <<
uni[i] << " ";
}
}