Bueno, miremos por partes, lo que estas haciendo, primero el main:
int main(){
vector<int> v1, v2;
int a=0, tamano;
cout<<"\nIntroduzca numero de elementos de los vectores a suma\n";
cin>>tamano;
cout<<"\nIntroduzca elementos primer vector, Cltr-Z para terminar\n";
while(cin>>a){
v1.push_back(a);
}
cout<<"\nIntroduzca elementos segundo vector, Cltr-Z para terminar\n";
while(cin>>a){
v2.push_back(a);
}
Una pregunta, ¿para qué pides el tamaño? Ya que lo pides
debes usarlo en los como condición de parada en los while (incluso podrías añadir un contador al bucle para que fuera mas orientativo). Ojo, digo debes porque recuerda que para sumar dos vectores, deben tener el mismo tamaño. Por tanto la condición de parada del while debería ser con un contador que llegara de 0 a tamano (en menor estricto).
Miramos la función sumar :
int sumar(vector<int> vr, vector<int> vs1, vector<int> vs2){
int tamano, suma;
tamano=vr.size();
for(int i=0;i<tamano;i++){
vr[i]=vs1[i]+vs2[i];
}
suma=vr[tamano];
return suma;
}
¿De donde sale ese vr? La función a la que llamas le estás pasando dos vectores, vs1 y vs2. El tamaño de vr debe ser igual al de vs1 o vs2 (miden lo mismo).