Code:
copy( istream_iterator<string>(ss) , istream_iterator<string>() , back_inserter(svec) );
This would be OK, except you want to read integers from the stream, not strings.
Code:
copy( istream_iterator<int>(ss) , istream_iterator<int>() , back_inserter(svec) );
You can also use the vector's constructor that takes a pair of iterators, but be aware of the "most vexing parse" (expression interpreted as a function declaration) - note the extra parenthesis to work around that:
Code:
vector<int> ivec((istream_iterator<string>(ss)) , istream_iterator<string>() );
----
And if you want to get more advanced, and detect if the user input consists of integers in the first place, rather than silently swallowing errors, you can use Boost's handy lexical_cast, which throws an exception if a string is not fully convertible to target type.
Code:
transform(istream_iterator<string>(ss), istream_iterator<string>(), back_inserter(ivec), &boost::lexical_cast<int, string>);