This code isn't valid: std::search()
requires both sequences to be identified using ForwardIterators (see 25.2.13 [alg.search]):
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1
search(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
However, std::istream_iterator<std::size_t>
is an InputIterator.