#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <sstream>
int main() {
// Reading from standard input
std::cout << "Enter numbers (Ctrl+D to end):" << std::endl;
// Use { } to interprete expression as initializers
std::vector<int> numbers{std::istream_iterator<int>(std::cin), std::istream_iterator<int>()};
// Writing to standard output
std::cout << "You entered: ";
std::copy(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
// Using stringstream with stream iterators
std::stringstream ss("10 20 30 40 50");
// Use { } to interprete expression as initializers
std::vector<int> more_numbers{std::istream_iterator<int>(ss), std::istream_iterator<int>()};
std::cout << "Numbers from stringstream: ";
std::copy(more_numbers.begin(), more_numbers.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
return 0;
}