Tente não usar loops explícitos, mas prefira os algoritmos padrão.
Uma maneira fácil de praticar isso é usando stream_iterators:
int main()
{
std::vector<int> data;
// copy a stream of numbers from standard input to
// vector, then back out to the standard output.
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::,back_inserter(data)
);
std::copy(std::begin(data), std::end(data),
std::ostream_iterator<int>(std::cout));
}
Cabeçalho necessário para o código acima:
#include <vector>
#include <ostream>
#include <algorithm>
#include <iterator>
(colocado aqui para tornar o código mais fácil de ler em um pedaço)