¿Cómo leer N enteros en un vector?

Si quiero leertodo enteros desde la entrada estándar a un vector, puedo usar el útil:

vector<int> v{istream_iterator<int>(cin), istream_iterator()};

Pero supongamos que solo quiero leern enteros. ¿Es el bucle escrito a mano todo lo que tengo?

vector<int> v(n);
for(vector<int>::size_type i = 0; i < n; i++)
    cin >> v[i];

¿O hay alguna forma más diestra de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta