Creates a copy of a specified number of elements from an input iterator. The copies are put in a forward iterator.
template<class InputIterator, class Size, class ForwardIterator> ForwardIterator uninitialized_copy_n( InputIterator _First, Size _Count, ForwardIterator _Dest );
The template function effectively executes the following:
for (; 0 < count; -- count)
new ((void *)&* _Dest ++)
iterator_traits<InputIterator>::value_type(* _First ++);
unless the code throws an exception. In that case, all constructed objects are destroyed and the exception is rethrown.