Hola.
El boolean te lo puedes ahorrar.
En los IF para determinar cómo hacer la suma de vectores según quien es el más grande, puedes comparar directamente el valor de sus longitudes, sin tener que usar previamente un boolean.
Tampoco necesitas la variable largoVectorMayor.
Y también te puedes ahorrar la inicialización a 0 de los elementos del vector.
Puesto que en el programa antes de operar con ellos, vamos a pedir por teclado sus valores, tenemos garantizado que cuando operemos tendrán valores válidos y no "basura" suelta que hayan encontrado por la RAM.
Luego, para imprimir el vector menor haces una operación matemática arriesgada:
for(int i = 0; i < largoVector2+(largoVector1 - largoVector2); i++){
cout<<vector2<<" | ";
}
Digo arriesgada, porque amplias el rango de elementos del arreglo.
Tú ahí quieres que ampliar para que el bucle vaya hasta la longitud del vector grande y calculas la diferencia entre ambas longitudes para sumarsela a la longitud menor.
Es innecesario, porque podría poner directamente que vaya hasta la longitud mayor, sin necesidad de calcular diferencia y sumarsela a la menor.
Pero además es arriesgado porque haces que el indice vaya hasta posiciones que el vector no tiene.
Si el vector menor mide por ejemplo 4, no debemos pedirle que vaya por encima de este valor.
Parecido ocurre con el bucle que suma vectores.
El límite en este caso ha de ser el del tamaño menor, pues esos son los elementos que vamos a sumar.
Los elementos del vector mayor, que están más alla de la longitud del menor, no se van a sumar ni tocar ni nada..., así que no hay que recorrerlos.
Te dejo este código haciendo esos cambios.
Fíjate que en el IF, pregunto si el primer vector es MAYOR O IGUAL.
Esto es importante, porque si solo nos preocupamos de si uno es mayor, o de si el otro es menor...¿que pasaría si resulta que ambos vectores miden lo mismo?
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int largoVector1 = 0, largoVector2 = 0;
cout<<"Largo del vector 1: "; cin>>largoVector1; //dar los valores de largo del vector
cout<<"Largo del vector 2: "; cin>>largoVector2;
int vector1[largoVector1]; //declaraciones de vectores
int vector2[largoVector2];
cout<<"\tVector 1:"<<endl;
for(int i = 0; i < largoVector1; i++){ //declarar valores de los vectores
cout<<"Vector: "; cin>>vector1[i];
}
cout<<"\tVector 2:"<<endl;
for(int i = 0; i < largoVector2; i++){
cout<<"Vector: "; cin>>vector2[i];
}
if(largoVector1 >= largoVector2){ //hacer operatoria e imprimer el primer vector
cout<<"V1: | ";
for(int i = 0; i < largoVector1; i++){
cout<<vector1[i]<<" | ";
}
cout<<"\nV2: | ";
for(int i = 0; i < largoVector2; i++){
cout<<vector2[i]<<" | ";
}
for(int i = 0; i < largoVector2; i++){ //sumar vectores
vector1[i] += vector2[i];
}
cout<<"\nR: | ";
for(int i = 0; i < largoVector1; i++){ //imprimir vectores
cout<<vector1[i]<<" | ";
}
}else{ //en caso de que el segundo vector sea mayor
cout<<"V1: | ";
for(int i = 0; i < largoVector1; i++){
cout<<vector1[i]<<" | ";
}
cout<<"\nV2: | ";
for(int i = 0; i < largoVector2; i++){
cout<<vector2[i]<<" | ";
}
for(int i = 0; i < largoVector1; i++){ //sumar vectores
vector2[i] += vector1[i];
}
cout<<"\nR: | ";
for(int i = 0; i < largoVector2; i++){ //imprimir vectores
cout<<vector2[i]<<" | ";
}
}
return 0;
}