Category: algorithms | Component type: function |
template <class ForwardIterator, class T> void fill(ForwardIterator first, ForwardIterator last, const T& value);
vector<double> V(4); fill(V.begin(), V.end(), 137); assert(V[0] == 137 && V[1] == 137 && V[2] == 137 && V[3] == 137);
[1] The reason that fill requires its argument to be a mutable forward iterator, rather than just an output iterator, is that it uses a range [first, last) of iterators. There is no sensible way to describe a range of output iterators, because it is impossible to compare two output iterators for equality. The fill_n algorithm does have an interface that permits use of an output iterator.