Если у вас еще нет copy_n()
в вашем инструментальном поясе, тогда вам следует.Очень полезно.
template<class In, class Size, class Out>
Out copy_n(In first, In last, Size n, Out result)
{
while( n-- > 0 && first != last )
*result++ = *first++;
return result;
}
С помощью этой утилиты удобно и элегантно скопировать n элементов в вектор:
#include<iterator>
#include<vector>
#include<iostream>
// ...
int n = 0;
std::cin >> n;
std::vector<int> v(n);
copy_n(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(),
n,
v.begin());