Вставщики и потоковые итераторы могут сделать это красиво:
#include <iterator>
#include <vector>
#include <iostream>
#include <algorithm>
std::vector<int> numbers;
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(numbers));
Или, как у @Ben Voigt, построить вектор из входных данных за один раз (если это вариант):
std::vector numbers(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>());
Вы можете заменить std::cin
подходящим потоком строк, если ваши входные требования более сложные.